4-CloudAlibaba-Sentinel(整合OpenFeign)学习笔记2020.10.24
程序员文章站
2022-10-03 14:06:09
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...
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
本文地址:https://blog.csdn.net/weixin_44600430/article/details/109255523
上一篇: 内火旺怎么调理 内火旺吃什么好
下一篇: 草莓可以放冰箱保鲜吗 草莓怎么保存
推荐阅读
-
SpringMVC学习笔记之一(SpringMVC架构及与Mybatis整合)
-
4-CloudAlibaba-Sentinel(整合OpenFeign)学习笔记2020.10.24
-
[SpringCloud学习笔记3]SpringCloud服务调用(ribbon,openFeign)
-
Mule ESB 学习笔记(20)Mule和Spring httpinvoker的整合
-
Mule ESB 学习笔记(8)mule和jersey的整合使用
-
SpringCloud_4Ribbon负载均衡服务调用和OpenFeign服务接口调用学习笔记
-
Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版骨架
-
Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标
-
Spring Cloud 学习笔记:OpenFeign 服务接口调用
-
SpringBoot整合ElasticSearch 学习笔记雷锋阳老师