首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大牛教你学微服务架构开发实战:使用Feign实现服务的消费者

使用Feign实现服务的消费者

我们在第7章已经将天气预报系统的所有功能都拆分为微服务。其中,也遗留了三个“TODO”项。

天气数据采集微服务在天气数据同步任务中,依赖于城市数据API微服务。

天气预报微服务查询天气信息,依赖于天气数据API微服务。

天气预报微服务提供的城市列表,依赖于城市数据API微服务。

这三个“TODO”项都需要调用外部系统的API。在本节我们将通过使用Feign来实现调用外部的RESTful服务。

天气数据采集微服务使用Feign

作为演示,我们将基于老的天气数据采集微服务msa-weather-collection-eureka进行修改,成为新的具备Feign功能的微服务msa-weather-collection-eureka-feign。

1.项目配置

为了使用Feign,在 build.gradle文件中增加如下配置。

2.启用Feign

要启用Feign,在应用的根目录的Application类上添加org.springframework.cloud.netflix.fcign.EnableFeignClients注解即可。

3.修改WeatherDataSyncJob

老的方法是伪造了一个城市数据。

这里,我们将使用Feign来从城市数据API微服务msa-weather-city-cureka中获取城市的信息。

首先,我们要定义一个Feign客户端CityClient。

CityClient在@FeignClient注解中指定了需要访问的应用的名称。

其次,我们在需要获取外部服务的WeatherDataSyncJob类中,使用CityClient接口即可。

4.修改项目配置

最后,修改application.properties。将其修改为如下配置。

天气预报微服务使用Feign

的具备Feign功能的微服务msa-weather-report-eureka-feign。

1.项目配置

为了使用Feign,在 build.gradle文件中增加如下配置。

2.启用Feign

要启用Feign,在应用的根目录的Application类上添加org.springframework.cloud.netflix.feign.EnableFeignClients注解即可。

3.定义Feign客户端

首先,我们要定义一个Feign客户端CityClient,来从城市数据API微服务msa-weather-city-eureka中获取城市的信息。

其次,我们再定义一个Feign客户端WeatherDataClient,来从天气数据API微服务msa-weather-data-eureka中获取天气的数据。

4.修改天气预报服务

修改天气预报服务WeatherReportServicelmpl,将原有的仿造的数据改为从Feign客户端获取天气数据API微服务提供的数据。

5.修改天气预报控制器

修改天气预报控制器WeatherReportController,将原有的伪造的城市数据改为由CityClient来获

取城市数据API微服务中的城市数据。

6.修改项目配置

最后,修改application.properties。将其修改为如下配置。

源码

本节示例所涉及的源码,见micro-weather-eureka-server、msa-weather-data-eureka和msa-weather-city-eureka,以及msa-weather-collection-eureka-feign和 msa-weather-report-eureka-feign。

本篇文章内容给大家讲解的是使用Feign实现服务的消费者

下篇文章给大家讲解实现服务的负载均衡及高可用;

觉得文章不错的朋友可以转发此文关注小编;

感谢大家的支持

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201126A0FW4100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券