SpringCloud服务间通信feign/openfeign远程调用在微服务结构中如何使用

openfeign远程调用在微服务结构中如何使用

OpenFeign是Spring cloud自己研发的二代负载均衡客户端,与feign一样都内置了Ribbon,在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等,OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

使用案例

假如当前有一个springcloud环境,不同单体服务之间有可能有需要调用其他服务的接口来获取数据,执行业务。这个时候如何正确准确的访问你想获取数据的对应的服务呢,在这个场景下就可以使用openfeign。
例如:
在这里插入图片描述
A,B,C 服务处于同一个springcloud环境下,A需要获取B服务中的相关数据才能完善当前业务。这个过程应该如何配置才能使用呢,
在这个过程中,A是需要获取数据的服务,B是提供数据的服务,B需要提供完整的openfeign配置供其他单体服务调用提供的接口服务。

远程调用中提供服务(BService)

例如:
在这里插入图片描述
这是提供openfeign服务的配置,需要在接口上添加@FeignClient()注解并配置path路径,name服务名(为配置在该springcloud环境下注册的服务名),

远程调用中获取数据(AService)

那么提供服务有了,如何在springcloud下面作为获取数据的服务使用openfeign来调用其他服务呢。由于B服务在提供openfeign的时候使用的@FeignClient本身就会被spring容器代理,在需要使用的时候,只需要引入对应服务的依赖Bservice然后直接注入该interface,然后就可以直接调用提供的远程调用方法,这样只能访问Bservice想暴露出来被远程调用的接口,在一定程度上也增加了服务的安全性。
例如:
在这里插入图片描述
这就是一个完整的为服务间使用openfeign实现跨服务通信的一个简单例子了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值