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深入學習筆記筆記
- SpingBoot_學習筆記整合boot筆記
- SSM學習筆記3——整合 SpringMVC、整合SSMSSM筆記SpringMVC
- 2020.10.24日記
- 機器學習整合學習—Apple的學習筆記機器學習APP筆記
- 【學習筆記】Spring與Junit的整合筆記Spring
- Spring MVC學習筆記和SSH的整合SpringMVC筆記
- SpringBoot整合ElasticSearch 入門demo學習筆記Spring BootElasticsearch筆記
- numpy的學習筆記\pandas學習筆記筆記
- Springcloud學習筆記68--springboot 整合Caffeine 本地快取GCCloud筆記Spring Boot快取
- 學習筆記筆記
- Spring Cloud OpenFeign整合Protocol BufferSpringCloudProtocol
- 【學習筆記】數學筆記
- 機器學習學習筆記機器學習筆記
- 《JAVA學習指南》學習筆記Java筆記
- 學習筆記-粉筆980筆記
- fastadmin學習筆記AST筆記
- JAVA學習筆記Java筆記
- FFT學習筆記FFT筆記
- HTML學習筆記HTML筆記
- wireshark學習筆記筆記
- LCA學習筆記筆記
- Tarjan 學習筆記筆記
- TensorFlow 學習筆記筆記
- PyTorch 學習筆記PyTorch筆記
- 字串學習筆記字串筆記
- Go 學習筆記Go筆記
- Bash 學習筆記筆記
- argparse學習筆記筆記
- Rust 學習筆記Rust筆記
- Python學習筆記Python筆記
- SpringBoot學習筆記Spring Boot筆記
- 吉他學習筆記筆記
- PHP 學習筆記PHP筆記
- Docker學習筆記Docker筆記
- AJAX學習筆記筆記
- TVM學習筆記筆記
- Flask學習筆記Flask筆記