1. 引言
在微服务横行的年代,后端根据业务的不一样分成了很多单独运行的服务,比如在物联网中,根据业务拆分为定时服务、设备控制等服务。当前端想控制设备时,其请求首先到其对应的后端服务,后端服务再调用设备控制服务,才能实现业务需求。
接下来例举一个实际的场景,后端服务如何去调用设备控制服务接口。
2. 实现的方式
2.1 HTTP请求方式
在业务层访问服务的时候,最常使用的协议就是HTTP协议,因此在访问其他服务,就可以模拟HTTP实现服务请求。http
包含header
和body
,因此在模拟中,就需要构造一个header
和body
。
在后端服务中提供了多种方法:HttpClient
,RestTemplete
。
在我之前的文章中介绍了RestTemplate
的方式,大家可以参考:如何在后端去访问第三方API
2.2 OpenFeign方式
Feign
是Springcloud
组件中的一个轻量级Restful
的HTTP
服务客户端,并内置了Ribbon
,可以实现客户端负载均衡。
OpenFeign
是Springcloud
在Feign的基础上支持了SpringMVC
的注解,如@RequestMapping
等。OpenFeign
的@FeignClient
可以解析SpringMVC
的@RequestMapping
注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
因此在定义接口上非常的方便,接下来进行介绍一个demo
,以下的代码都需写在后端服务上。
2.2.1 在SpringBoot项目中引入注解
在