spring-cloud 使用初谈(三)--注解

@EnableDiscoveryClient

   在应用主类中,通过@EnableDiscoveryClient注解来添加发现服务能力。

@LoadBalanced

    创建RestTemplate实例,并通过@LoadBalanced注解开启均衡负载能力。

@EnableFeignClients

    开启Feign功能

file

@RibbonLoadBalancerClientribbon

  实现负载均衡, 在SpringCloud的客户端负载均衡器LoadBalancerClient的默认实现RibbonLoadBalancerClient中,使用了Ribbon的ILoadBalancer接口来实现chooseServer即负载均衡功能。

@FeignClient

file

file

@EnableCircuitBreaker

    在SpringCloud中使用断路器,需要加上这个

@HystrixCommand

     实现断路器的功能,比如访问当前url的如果请求错误 会调用error的方法

file

@HystrixCollapser

此注解目的是为了合并多个请求 ,将其变为一个请求
file

@EnableZuulProxy

@EnableZuulProxy简单理解为@EnableZuulServer的增强版,当Zuul与Eureka、Ribbon等组件配合使用时,我们使用@EnableZuulProxy。

file

pre类型过滤器

(1) ServletDetectionFilter:该过滤器用于检查请求是否通过Spring Dispatcher。检查后,通过isDispatcherServletRequest设置布尔值。 
 (2) FormBodyWrapperFilter:解析表单数据,并为请求重新编码。  
(3) DebugFilter:顾名思义,调试用的过滤器,可以通过zuul.debug.request=true,或在请求时,加上debug=true的参数,例如$ZUUL_HOST:ZUUL_PORT/path?debug=true开启该过滤器。这样,该过滤器就会把RequestContext.setDebugRouting()、RequestContext.setDebugRequest()设为true。

route类型过滤器

SendForwardFilter:该过滤器使用Servlet RequestDispatcher转发请求,转发位置存储在RequestContext.getCurrentContext().get("forward.to")中。可以将路由设置成:
1. zuul: 
2. routes: 
3. abc:  
4. path: /abc/** 
5. url: forward:/abc 

然后访问$ZUUL_HOST:ZUUL_PORT/abc,观察该过滤器的执行过程。

post类型过滤器

SendResponseFilter:将Zuul所代理的微服务的响应写入当前响应。

error类型过滤器

SendErrorFilter:如果RequestContext.getThrowable()不为null,那么默认就会转发到/error,也可以设置error.path属性修改默认的转发路径。
@SpringCloudApplication注解

@SpringCloudApplication

    包括:@SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker,分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说,这是每一微服务必须应有的三个注解,所以才推出了@SpringCloudApplication这一注解集合。

本文来源于:程序员ken,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina)、掘金,转载请注明出处。

posted @   程序员ken  阅读(7)  评论(0编辑  收藏  举报  
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示