Sentinel连接
POM
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
配置文件
这里基于我们把配置注册到了Nacos上 所以我们去Nacos上修改
spring:
application:
name: service-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
encode: utf-8
# 开启的Sentinel客服端端口号
sentinel:
transport:
dashboard: localhost:8888
#允许使用Nacos上连接Sentinel
feign:
sentinel:
enabled: true
server:
port: 9001
注意了
一定要注意在Nacos上注册的配置尽量不要用注解,减少报错可能,我这里是为了展示一下
怎么从Nacos上吧配置加载下来不用我说了吧,应该都懂不懂可以看我之前写的文章(如果有问题,请告诉一下我= =)
注意: 必须至少请求过一次才能在 Sentinel 控制台看到对应的服务
我们也尽量将所有的服务都注册到Sentinel上方便监控管理
服务熔断和服务降级
编写熔断类
@Component
@EnableFeignClients
public class ServiceFallback implements TestService {
@Override
public String echo(String string) {
return "请求失败,进入服务降级";
}
@Override
public String lb() {
return "请求失败,进入服务降级";
}
}
Service类上加入服务降级注解
@FeignClient(name = "service-provider", fallback = ServiceFallback.class)
@Service
public interface TestService {
@RequestMapping(value = "test/echo/{string}",method = RequestMethod.GET)
String echo(@PathVariable("string") String string);
@GetMapping(value = "test/lb")
String lb();
}
测试一下
我们关掉服务提供方测试一下会不会走服务降级
成功了,这样就算基本配置完成了
注意: 如果出现注册不上Sentinel的情况,可能是因为配置文件的原因,如果不走服务降级,注意导入的包正不正确