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

@EnableDiscoveryClient

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

@LoadBalanced

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

@EnableFeignClients

    开启Feign功能
            

spring-cloud 使用初谈(三)--注解_第1张图片

@RibbonLoadBalancerClientribbon

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

@FeignClient

spring-cloud 使用初谈(三)--注解_第2张图片

spring-cloud 使用初谈(三)--注解_第3张图片

@EnableCircuitBreaker

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

@HystrixCommand

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

spring-cloud 使用初谈(三)--注解_第4张图片

@HystrixCollapser

此注解目的是为了合并多个请求 ,将其变为一个请求
spring-cloud 使用初谈(三)--注解_第5张图片

@EnableZuulProxy

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

spring-cloud 使用初谈(三)--注解_第6张图片

#### 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)、掘金,转载请注明出处。

你可能感兴趣的:(spring)