------前几天和一个阿里的同学聊了下 RPC 技术 ,他们阿里内部其实不用 dubbo,因为 dubbo 出来没几年,早些年淘宝的内部服务调用的是自己的 HSF . 我个人感觉可能阿里系池子太大了,dubbo 再牛逼,也懒得改了,毕竟 HSF 用的早,用的早就铺天盖地的了
我现在用这个套 RPC 是 spring cloud 推荐的 Feign
为啥用这个呢?
Feign 是一个声明式 WebService 客户端.使用 Feign 能让编写 WebService 客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持 JAX-RS 标准的注解.Feign 也支持可拔插式的编码器和解码器.Spring Cloud 对 Feign 进行了封装,使其支持了 Spring MVC 标准注解和 HttpMessageConverters.Feign 可以与 Eureka 和 Ribbon 组合使用以支持负载均衡.
只需要你创建一个接口,然后在上面添加注解即可.
Feign 能干什么?
Feign 旨在使编写 Java Htpp 客户端变得更容易.
使用 Ribbon+RestTemplate 时,利用 RestTemplate 对 http 请求的封装处理,形成了一套模板化的调用方法.但是在实际开发中,由于对服务依赖的调用可能不止一处,**往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用.**所以,Feign 在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义.在 Feign 的实现下,我们只需要创建一个接口并使用注解的方式来配置它(以前是 Dao 接口上标注 Mapper 注解,现在是一个微服务接口上面标注一个 Feign 注解即可),即可完成对服务提供方的接口绑定,简化了使用 Spring cloud Ribbon 时,自动封装服务调用客户端的开发量
Feign 集成了 Ribbon
利用 Ribbon 维护了 MicroServiceCloud-Dept 的服务列表信息,并且通过轮询实现了客户端的负载均衡.而与 Ribbon 不同的是,通过 feign 只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用
我理解的大白话意思就是,像掉本地方法样的调用远程接口
如下图
使用者只需要注入这个 AnalysisLogRemoteService
即可象调用本地 service 一样调用远程服务,起码我感觉看着舒服点!!!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于