无锡网站网页设计培训,wordpress主题 红木,陕西省教育类网站前置审批,浙江省建设门户网站文章目录 前言一、准备1. 引入依赖2. 配置控制台信息 二、定义资源1. Controller2. Service3. ServiceImpl 三、访问控制台1. 发起请求2. 访问控制台 总结 前言
Spring Cloud Alibaba 默认为 Sentinel 整合了 Servlet、RestTemplate、FeignClient 和 Spring WebFlux。Sentinel… 文章目录 前言一、准备1. 引入依赖2. 配置控制台信息 二、定义资源1. Controller2. Service3. ServiceImpl 三、访问控制台1. 发起请求2. 访问控制台 总结 前言
Spring Cloud Alibaba 默认为 Sentinel 整合了 Servlet、RestTemplate、FeignClient 和 Spring WebFlux。Sentinel 在 Spring Cloud 生态中不仅补全了 Hystrix 在 Servlet 和 RestTemplate 这一块的空白而且还完全兼容了 Hystrix 在 FeignClient 中限流降级的用法并且支持运行时灵活地配置和调整限流降级规则。
这里我们为提供者服务整合Sentinel添加流量控制和服务降级保证应用程序的健壮和稳定性。 一、准备
1. 引入依赖
!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel --
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactIdversion${spring-cloud-alibaba.version}/version
/dependency2. 配置控制台信息 连接到控制台是为了更好地观察和使用Sentinel spring:cloud:sentinel:transport:port: 8719dashboard: localhost:8080二、定义资源
1. Controller
package org.example.nacos.provider.controller;import org.example.nacos.provider.service.SentinelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;/*** Create by zjg on 2024/8/26*/
RestController
public class SentinelController {Autowiredprivate SentinelService service;GetMapping(value /hello/{name})public String apiHello(PathVariable(name) String name) {return service.sayHello(name);}
}2. Service
package org.example.nacos.provider.service;/*** Create by zjg on 2024/8/26*/
public interface SentinelService {public String sayHello(String name);
}3. ServiceImpl 这里我们使用注解SentinelResource定义了一个资源 package org.example.nacos.provider.service.impl;import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.example.nacos.provider.service.SentinelService;
import org.springframework.stereotype.Service;/*** Create by zjg on 2024/8/26*/
Service
public class SentinelServiceImpl implements SentinelService {OverrideSentinelResource(value sayHello)public String sayHello(String name) {return Hello, name;}
}
三、访问控制台
1. 发起请求 2. 访问控制台 大家从控制台可以看到我们访问的请求和自定义的资源sayHello都已经成功添加到控制台我们可以通过控制台进一步完成流控和熔断等等功能。 总结
回到顶部 更多内容请查看 这里讲一下为什么要使用注解去完成资源的定义因为其他方式或多或少存在代码侵入我感觉不友好而使用注解的方式可以很轻松地完成这个功能。