rpc框架开源(RPC框架除了Dubbo或SpringCloud之外的选择)

在做微服务架构设计时,我们一般选用RPC框架的会是Dubbo或SpringCloud。

今天介绍一个在这两者之外的其他框架-----Motan

基本介绍

Motan是一套基于java开发的RPC框架,由新浪微博开源。可靠性经过新浪微博生产环境验证。

除了常规的点对点调用外,Motan还提供服务治理功能,包括服务节点的自动发现、摘除、高可用和负载均衡等。Motan具有良好的扩展性,主要模块都提供了多种不同的实现,例如支持多种注册中心,支持多种rpc协议等。

架构概述

Motan中分为服务提供方(RPC Server),服务调用方(RPC Client)和服务注册中心(Registry)三个角色。

  • Server提供服务,向Registry注册自身服务,并向注册中心定期发送心跳汇报状态;
  • Client使用服务,需要向注册中心订阅RPC服务,Client根据Registry返回的服务列表,与具体的Sever建立连接,并进行RPC调用。
  • 当Server发生变更时,Registry会同步变更,Client感知后会对本地的服务列表作相应调整。

三者的交互关系如下图:

rpc框架开源(RPC框架除了Dubbo或SpringCloud之外的选择)(1)

模块概述

Motan框架中主要有register、transport、serialize、protocol几个功能模块,各个功能模块都支持通过SPI进行扩展,各模块的交互如下图所示:

rpc框架开源(RPC框架除了Dubbo或SpringCloud之外的选择)(2)

功能
  • 支持通过spring配置方式集成,无需额外编写代码即可为服务提供分布式调用能力。
  • 支持集成consul、zookeeper等配置服务组件,提供集群环境的服务发现及治理能力。
  • 支持动态自定义负载均衡、跨机房流量调整等高级服务调度能力。
  • 基于高并发、高负载场景进行优化,保障生产环境下RPC服务高可用。
综述:

从架构设计上来看,和Dubbo非常相似。但是市场占有率和知名度不及Dubbo

目前项目也还在维护中。这点也比较靠谱

Motan的一大优点是,跨语言的Rpc框架。除了java外,还支持PHP、Go、Lua等相互之间调用

地址:https://github.com/weibocom/motan

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页