ITPub博客

首页 > IT职业 > IT生活 > 从motan看RPC框架设计

从motan看RPC框架设计

IT生活 作者:jhmaple 时间:2021-09-09 09:03:36 0 删除 编辑
geely说:

这里是一个副标题---motan源码导读

kris是geely的老同事,目前在蚂蚁金服工作,对于架构理解非常深入,平时也爱研究~对技术有非常高的热忱~转个他的非常好的文章

如果没用过motan的话,那么没关系,这篇文章可以帮你打开这扇窗
如果没用过motan的话,那么没关系,这篇文章可以帮你打开“看”的思路

他的思考角度和深度把握和思维逻辑很值得学习,例如在看一段源码之前给自己提了很多问题哟~

kris的文章开始

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决

从零开发一款RPC框架,说难也难说简单也简单。难的是你的设计将如何面对实际中的复杂应用场景;简单的是其思想可以仅仅浓缩成一行方法调用。motan是今年(2016年)新浪微博开源的一款RPC框架,据说在新浪微博正支撑着千亿次调用。对于她的详细介绍和赞誉是新闻稿和README的责任,本文则会从RPC的基本原理入手,分析和讲解motan的各层的实现思想。

为了避免落入俗套,本文将尽力避免对各种概念的解释(这是wiki的责任),并默认读者已经有了相关RPC框架的使用经验(比如dubbo)。为了使得文章充满’干货’,本文重点讲解的是motan的实现原理,并配有一定量的代码予以解释。这会使读者不但知晓RPC框架的设计思路,也能知道相关生产代码究竟是如何编写的(在这个浮躁的年代,只有算法和代码是最干的货)。

本文先简单解释一下RPC的本质,然后直接给出motan的整体架构,并解释每层的具体含义。然后我们将从一段XML的配置入手,详细讲解provider与consumer的初始化流程以及调用和服务流程。最后挑选几个比较重要的机制进行讲解。

在开始之前,让我们思考以下几个问题:
  • 如何与Spring做集成?
  • SPI机制的实现原理是什么?为什么要用这个?
  • 这么多的配置,究竟是如何在类间传递和保存的?
  • 服务降级是如何做的?
  • motan协议究竟是什么样子的?
  • 服务发现和注册究竟是怎么做的?或者说客户端是如何找到服务端的?
  • 为什么要用动态代理,到底proxy了什么?
  • cluster的负载均衡和ha究竟是如何实现的?
  • transport层是怎么进行抽象的?
  • client对server的心跳检测是怎么实现的呢?
  • client端的连接池是如何管理的?
  • server端的连接是如何共享的?

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1678/viewspace-2799000/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    547
  • 访问量
    6015