微服务架构实战学习(三):RPC 框架

接上篇,上篇中对微服务间的通信方式进行了讲解,我们知道微服务间的通信方式主要是基于 RPC 协议。今天分享现如今主流的 RPC 框架

RPC 框架

如上文我瞎举的示例(直到效果就好…),RPC 框架就类似于干了那些诸如派单、物流等等一系列事情的平台。而服务调用方只需要订阅另一个服务提供方的服务,RPC 框架就会把结果扔给服务调用方(粗糙地类似于用户点餐平台的流程)。

1.1 alibaba dubbo(Dubbox)

dubbo 是 alibaba 前几年开源的 RPC 框架,后来停止维护。Dubbox 是当当在 alibaba 停止维护后基于 Dubbo 而维护的 RPC 框架项目。现在,alibaba 又开始了对 dubbo 的维护,而且项目已经捐献给了 apache 基金会,期待 ali 为开源项目提供更多的支持以及维护。

1 dubbo 架构图

《微服务架构实战学习(三):RPC 框架》 Dubbo 架构图

从架构图上我们可以看到 0、1、2 这三步是服务启动时的初始化工作,其中 1 就类似于某咖啡店跟某点餐平台注册账号一样,2 就类似于需要点餐的用户也在点餐平台上来注册账号。

3 则表示如果服务提供者的地址发生了变化,就通知给服务调用者。这类似于咖啡店的的电话变了,平台会通知到用户。

4 服务调用者从注册中心拿到服务提供者的地址并调用服务。这其中包括负载均衡。

5 服务消费者与提供者和注册中心之间都使用的是长连接,在调用过程中,会在内存中对调用次数进行统计,然后定时反馈给监控中心对调用进行监控。

注:

  • 图中实线表示的是同步调用,而虚线则表示的是异步调用。
  • 消费者与提供者之间使用的是非阻塞IO(NIO)

2 dubbo github 地址

https://github.com/apache/incubator-dubbo

3 dubbox 官方中文文档地址

http://dubbo.apache.org/books/dubbo-user-book/

1.2 sina motan

motan 是新浪开源的服务治理框架,据说使用简单,我没使用过…

1 github 地址

https://github.com/weibocom/motan

2 中文文档地址

https://github.com/weibocom/motan/wiki/zh_overview

3 motan 架构

《微服务架构实战学习(三):RPC 框架》 motan 架构

1.3 apache thrift

thrift 是 facebook 开发,后来开源并捐献给了 apache 社区,且 thrift 是一个跨语言的 RPC 框架,且支持市面上的主要的编程语言。

1 thrift 官方

http://thrift.apache.org/

2 文档

http://thrift.apache.org/tutorial/

1.4 google grpc

grpc 是 Google 开源 RPC 框架,高性能、开源、将移动和 HTTP/2 放在首位的通用的 RPC 框架,基于 HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性,堪称 RPC 框架的典范。

但 grpc 它本身它不是分布式的

1 grpc github 地址

https://github.com/grpc/grpc

2 文档地址

https://github.com/grpc/grpc/tree/master/doc

1.5 spring cloud

Spring Cloud 完全基于 Spring Boot,服务调用方式是基于 REST API。整合了各种成熟的产品和架构,并且基于 spring boot 也使得整体的开发、配置、部署都异常的方便。

1 官方地址

http://projects.spring.io/spring-cloud/

2 文档地址

https://spring.io/docs

接下来,会进一步对上方各框架进行一些横向对比。并且,会基于 spring cloud 来进行示例开发。敬请期待

    原文作者:雨林_a1d6
    原文地址: https://www.jianshu.com/p/f81db9c87947
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞