4-CloudAlibaba-Sentinel(整合OpenFeign)學習筆記2020.10.24
4-CloudAlibaba-Sentinel
(整合OpenFeign
)學習筆記2020.10.24
前言: (Cloud官網 、GitHub官網)
Sentinel與OpenFeign元件相容。要使用它,除了引入
sentinel-starter
依賴關係之外,還需要完成以下兩個步驟:
- 在屬性檔案中啟用偽裝的Sentinel支援。
feign.sentinel.enabled=true
- 新增
openfeign starter
依賴項以觸發並啟用sentinel starter
:
1.0 引入spring-cloud-starter-openfeign
依賴
在原有學習
Sentinel
工程模組下增加openfeign
依賴
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
1.1.1 配置檔案application.yml
新增, 開啟 Sentinel 對 Feign 的支援
server:
port: 8080
spring:
application:
name: cloudalibaba-sentinel-service
cloud:
nacos:
discovery:
server-addr: 119.xx.xxx.xxx:8848 # Nacos服務註冊中心地址
sentinel:
transport:
port: 8719
dashboard: 119.xx.xxx.xxx:8090 # 配置Sentinel dashboard地址
# 暴露監控
management:
endpoints:
web:
exposure:
include: '*'
# 開啟Sentinel對Feign的支援
feign:
sentinel:
enabled: true
1.1.2 在啟動類加上@EnableFeignClients註解,開啟Feign
的功能
@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class SentinelService
{
public static void main(String[] args) {
SpringApplication.run(SentinelService.class, args);
}
}
1.1.3 簡單的用法FeignClient
//註解要指定服務名 _不能有下劃線
@FeignClient(value = "nacos-provider",fallback = FeginClientImpl.class)
public interface FeginClient {
//nacos-provider服務中名字為"/getPort/nacos/{id}"的介面
@GetMapping(value = "/getPort/nacos/{id}")
String getPort(@PathVariable("id") Integer id);
}
//-------------------------------分割線---------------------------------------------
/**
* @Author: ZhiHao
* @Date: 2020/10/23 17:50
* @Description: 降級方法實現
* @Versions 1.0
**/
@Component //別忘記註冊入框架管理
public class FeginClientImpl implements FeginClient {
@Override
public String getPort(Integer id) {
return "呼叫失敗了!!!!!!!!!"+id;
}
}
呼叫之前學習
nacos
的提供者介面。
1.1.4 增加api
介面進行啟動測試
@Autowired
private FeginClient feginClient;
@GetMapping("/testFeginClient")
public CommonResult testFeginClient() {
String feginClientPort = feginClient.getPort(666);
return new CommonResult(HttpStatus.HTTP_OK, "正常響應", feginClientPort);
}
PS: 如果啟動遇到了 如下異常
Caused by: java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidatateMetadata(Ljava/lang/Class;)Ljava/util/List;
那是因為fegin.context介面的定義為parseAndValidateMetadata。就是之前版本中定義的方法名拼寫錯誤。
解決方法: 看這裡
1.1.5 測試結果:
1
相關文章
- OpenFeign深入學習筆記筆記
- 機器學習整合學習—Apple的學習筆記機器學習APP筆記
- SAP學習筆記--整合與核算筆記
- SSM學習筆記3——整合 SpringMVC、整合SSMSSM筆記SpringMVC
- SpingBoot_學習筆記整合boot筆記
- 【學習筆記】Spring與Junit的整合筆記Spring
- Spring MVC學習筆記和SSH的整合SpringMVC筆記
- numpy的學習筆記\pandas學習筆記筆記
- SpringBoot整合ElasticSearch 入門demo學習筆記Spring BootElasticsearch筆記
- IT學習筆記筆記
- 學習筆記筆記
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- jQuery 學習筆記jQuery筆記
- react學習筆記React筆記
- 學習筆記(4.3)筆記
- 學習筆記(4.4)筆記
- 學習筆記(3.29)筆記
- 學習筆記(4.1)筆記
- AOP學習筆記筆記
- AspectJ學習筆記筆記
- 學習筆記(3.27)筆記
- 學習筆記(4.2)筆記
- golang 學習筆記Golang筆記
- Zookeeper學習筆記筆記
- 學習筆記(3.24)筆記
- 學習筆記(3.25)筆記
- 學習筆記(3.21)筆記
- GitHub學習筆記Github筆記
- jest 學習筆記筆記
- typescript 學習筆記TypeScript筆記
- Echarts學習筆記Echarts筆記
- js學習筆記JS筆記
- shell學習筆記筆記
- Dubbo 學習筆記筆記