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的情況,可能是因爲配置文件的原因,如果不走服務降級,注意導入的包正不正確