springcloud 及组件的基本使用

eureka  注册中心
    pom:spring-cloud-starter-eureka-server  
    服务端 启动类上@EnableEurekaServer  
    application.xml
        eureka:
          instance:
            hostname: localhost
          client:
            registerWithEureka: false
            fetchRegistry: false
            serviceUrl:
              defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    客户端 启动类上@EnableEurekaClient          
ribbon  负载均衡客户端 
    pom:spring-cloud-starter-ribbon
    启动类 @EnableDiscoveryClient 注册服务到客户端
    @LoadBalanced注解表明这个restRemplate开启负载均衡的功能。
    
feigin  Feign 主要做服务调用  默认集成了ribbon,采用的是基于接口的注解    
    pom:spring-cloud-starter-eureka spring-cloud-starter-feign 
    启动类上@EnableDiscoveryClient  @EnableFeignClients  :启用服务注册与发现:启用feign进行远程调用
    @FeignClient(value = "service-hi")
    public interface SchedualServiceHi {
        @RequestMapping(value = "/hi",method = RequestMethod.GET)
        String sayHiFromClientOne(@RequestParam(value = "name") String name);
    }
    调用这个SchedualServiceHi.sayHiFromClientOne方法时 其实是调用的 服务名为service-hi,/hi的服务

Hystrix 熔断器
   application.xml 
   feign.hystrix.enabled=true
   
   创建一个实现类 HelloRemoteHystrix 实现该接口
   然后对应方法进行熔断回调
   对应接口加上 熔断回调的注解 @FeignClient(value = "service-hi"  fallback = HelloRemoteHystrix.class)
   
zuul 
    Zuul的主要功能是路由转发和过滤器。负载均衡
   pom :spring-cloud-starter-zuul
   启动类 @EnableZuulProxy
   
   application.xml 
    zuul.routes.api-a.path=/demand/**
    zuul.routes.api-a.serviceId=sybus-demand-service
    前缀为    /demand/的请求都转发给  sybus-demand-service服务    (路由)
    代理注册在eureka上的服务,实现在服务端的负载均衡。
    过滤: 拦截非法请求 定义多个拦截器继承ZuulFilter
    public class MyFilter extends ZuulFilter{

        private static Logger log = LoggerFactory.getLogger(MyFilter.class);
        //过滤类型  有pre:路由之前 routing:路由之时 post: 路由之后 error:发送错误调用
        @Override
        public String filterType() {
            return "pre";
        }
        //过滤的顺序
        @Override
        public int filterOrder() {
            return 0;
        }
        //本文true,永远过滤。
        @Override
        public boolean shouldFilter() {
            return true;
        }
        //run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问
        @Override
        public Object run() {
        }
    }

 

eureka  注册中心pom:spring-cloud-starter-eureka-server  服务端 启动类上@EnableEurekaServer  application.xmleureka:  instance:hostname: localhost  client:registerWithEureka: falsefetchRegistry: falseserviceUrl:  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/客户端 启动类上@EnableEurekaClient  ribbon  负载均衡客户端 pom:spring-cloud-starter-ribbon启动类 @EnableDiscoveryClient 注册服务到客户端@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。feigin  Feign 主要做服务调用  默认集成了ribbon,采用的是基于接口的注解pom:spring-cloud-starter-eureka spring-cloud-starter-feign 启动类上@EnableDiscoveryClient  @EnableFeignClients  :启用服务注册与发现:启用feign进行远程调用@FeignClient(value = "service-hi")public interface SchedualServiceHi {@RequestMapping(value = "/hi",method = RequestMethod.GET)String sayHiFromClientOne(@RequestParam(value = "name") String name);}调用这个SchedualServiceHi.sayHiFromClientOne方法时 其实是调用的 服务名为service-hi,/hi的服务
Hystrix 熔断器   application.xml    feign.hystrix.enabled=true      创建一个实现类 HelloRemoteHystrix 实现该接口   然后对应方法进行熔断回调   对应接口加上 熔断回调的注解 @FeignClient(value = "service-hi"  fallback = HelloRemoteHystrix.class)   zuul Zuul的主要功能是路由转发和过滤器。负载均衡   pom :spring-cloud-starter-zuul   启动类 @EnableZuulProxy      application.xml zuul.routes.api-a.path=/demand/**zuul.routes.api-a.serviceId=sybus-demand-service前缀为/demand/的请求都转发给  sybus-demand-service服务    (路由)代理注册在eureka上的服务,实现在服务端的负载均衡。过滤: 拦截非法请求 定义多个拦截器继承ZuulFilterpublic class MyFilter extends ZuulFilter{
private static Logger log = LoggerFactory.getLogger(MyFilter.class);//过滤类型  有pre:路由之前 routing:路由之时 post: 路由之后 error:发送错误调用@Overridepublic String filterType() {return "pre";}//过滤的顺序@Overridepublic int filterOrder() {return 0;}//本文true,永远过滤。@Overridepublic boolean shouldFilter() {return true;}//run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问@Overridepublic Object run() {}}

posted @ 2018-03-09 13:54  wuhaoyoung  阅读(1725)  评论(0编辑  收藏  举报