前言
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
在Spring Cloud中使用Feign
在了解了如何单独使用Feign后,再学习在Spring Cloud中使用Feign,将会有非常大的帮助。虽然Spring Cloud对Feign进行了封装,但万变不离其宗,只要了解其内在原理,使用起来就可以得心应手。在开始本节的讲解前,先准备Spring Cloud 的测试项目。测试案例主要有以下三个项目。
➢spring-feign-server: Eureka 服务器端项目,端口为8761,代码目录为codes)05)5.3\spring- feign-server。
➢spring-feign-provider: 服务提供者,代码目录为codes05.3)springfeign-provider,该项目可以在控制台中根据输入的端口号启动多个实例,启动8080与8081这两个端口,该项目提供以下两个REST服务。
●第一个地址为/person/ {personld)的服务,请求后返回Person 实例,Person的message属性为HTTP请求的URL。
●第二个地址为hello的服务,返回“Hello World"字符串。
➢spring-feign-invoker: 服务调用者项目,对外端口为9000,代码目录为codes(05\5.3\spring feign-invoker,本节的例子主要在该项目下使用Feign。
Spring Cloud整合Feign
为服务调用者( spring feign-ivoker)的pom.xml文件加入以下依赖:
org. spr ingf ramework. cloud
spr ing-cloud-starter-feign
在服务调用者的启动类中,打开Feign开关,请见代码清单5-18。
代码清单5-18;
codes(0515.3lspring-feign-invokerlsrclmainjavalorglcrazyiticloudInvokerApplication.java
aSpringBootApplication
BEnableEurekaclient
eEnableFeignCli