目录地址:
SpringCloudAlibaba整合-CSDN博客
这里只关注代码部分,至于sentinel服务UI的实用,后面可以补上
这里做一个改造:
因为sentinel可以和openfeign结合使用,为微服务做熔断降级;
为了方便微服务之间的调用,把远程调用接口移动到api模块;
所以把order中的openfeign和loadbalancer依赖,放到api的pom中,并且把order中Remote接口,移动到api中;后续order只需要引入api的依赖,调用api中的接口即可
1.在api中引入sentinel和openfeign
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--loadbalancer-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!--sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2.把接口从order转移到api,并修改
@FeignClient(name="my-user", fallbackFactory = UserServiceFactory.class)
public interface RemoteUserService {
@RequestMapping("/user/listAll")
public List<User> listAll();
@GetMapping("/user/getById")
public User getById(@RequestParam("id") Integer id);
}
api模块,添加UserServiceFactory类
@Component
public class UserServiceFactory implements FallbackFactory<RemoteUserService> {
@Override
public RemoteUserService create(Throwable cause) {
return new RemoteUserService() {
@Override
public List<User> listAll() {
return null;
}
@Override
public User getById(Integer id) {
System.out.println("user服务异常");
return null;
}
};
}
}
3.注意要把UserServiceFactory放到META-INF/spring.factories文件中
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.test.api.remote.fallbackFactory.UserServiceFactory,\
com.test.api.remote.fallbackFactory.ProductServiceFactory
4.order引入api依赖,并在启动类添加注解,扫描feignClient接口
@EnableFeignClients(basePackages = {"com.test.api.remote"})
5.order的配置文件添加
feign:
sentinel:
enabled: true
6.重启服务,访问接口,正常访问文章来源:https://www.toymoban.com/news/detail-847740.html
此时停止user服务,再次访问order接口,返回null,后台日志打印“user服务异常”文章来源地址https://www.toymoban.com/news/detail-847740.html
到了这里,关于SpringCloudAlibaba-整合sentinel(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!