新建搜索服务子模块
编辑 pom 文件
2 基于 Ribbon 实现微服务调用Client Side Load Balancer: Ribbonjavaedge-ad-service com.sss.ad 1.0-SNAPSHOT 4.0.0 ad-search1.0-SNAPSHOT jar org.springframework.cloud spring-cloud-starter-netflix-hystrix-dashboardorg.springframework.boot spring-boot-starter-actuatororg.springframework.boot spring-boot-starter-weborg.springframework.cloud spring-cloud-starter-netflix-eureka-clientorg.springframework.cloud spring-cloud-starter-openfeignorg.springframework.cloud spring-cloud-starter-netflix-hystrixorg.springframework.cloud spring-cloud-starter-netflix-ribbonorg.springframework.boot spring-boot-starter-data-jpaorg.springframework.boot spring-boot-starter-jdbcmysql mysql-connector-java8.0.12 runtime com.sss.ad ad-common1.0-SNAPSHOT commons-codec commons-codec1.9 org.apache.commons commons-collections44.0 com.github.shyiko mysql-binlog-connector-java0.13.0 org.springframework.boot spring-boot-configuration-processororg.springframework.kafka spring-kafka2.1.5.RELEASE org.springframework.boot spring-boot-maven-plugin
Ribbon 是一个客户端负载均衡器,可很好地控制HTTP和TCP客户端的行为.
Feign已经使用Ribbon,所以若使用@FeignClient,则本节也适用也是必备知识点.
Ribbon 中的中心概念是指定客户端的概念
每个负载平衡器是集合组件的一部分,它们一起工作以根据需要与远程服务器通信,并且集合具有你将其作为应用程序开发人员(例如使用@FeignClient注解)的名称.
Spring Cloud 使用 RibbonClientConfiguration 为每个命名的客户端根据需要创建一个新的集合作为ApplicationContext.这包含 ILoadBalancer,RestClient和ServerListFilter.
要在项目中包含Ribbon,请使用
grouporg.springframework.cloud,artifact ID spring-cloud-starter-ribbon的starter.
定义 demo 演示类
Feign 是一个声明式的Web服务客户端.
这使得Web服务客户端的写入更加方便,要使用 Feign 创建一个接口,并对其添加注解。它提供了可插拔式的注解,包括Feign注解和JAX-RS注解。Feign还支持可插拔编码器和解码器.
Spring Cloud增加了对Spring MVC注解的支持,并使用Spring Web中默认使用的HttpMessageConverters.
Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端.
要在项目中包含Feign,请使用grouporg.springframework.cloud和artifact ID spring-cloud-starter-feign的启动器.
Spring Boot应用
接口文件
在 @FeignClient 注解中,String 值(上面的eureka-client-ad-sponsor)是一个任意的客户端名称,用于创建Ribbon负载均衡器,还可以使用url属性(绝对值或只是主机名)指定URL.
应用程序上下文中的bean的名称是该接口的完全限定名,要指定自己的别名,可以使用@FeignClient注释的qualifier值.
Hystrix支持回退的概念 : 当电路断开或出现错误时执行的默认代码路径.
要为给定的 @FeignClient 启用回退,请将 fallback 属性设置为实现回退的类名.
作者:JavaEdge
链接:https://www.jianshu.com/p/9c62c0fbd139



