我依稀记得,刚到公司的时候,锋哥让我学习Maven,spring,spring MVC,mybatis,RPC:motan,Xdiamond,Jenkins,redis和Kafka。快3个月了,目前只是对Maven,spring,spring MVC,mybatis,RPC:motan,Xdiamond和redis接触过了,Jenkins和Kafka还没接触过。Maven,spring,spring MVC,mybatis和redis算是比较熟悉的了,基本上官网都认真的看过好几遍了,各种文档也看了很多,唯独这个motan,还没有真正的去了解。之前在github上看过了motan的中文wiki,似懂非懂,就知道大致的框架,还没有实际落地实践过。

刚好最近在写webtest,超级土豆用到了motan,就向他学了一些,大致看懂了项目中的motan框架,然后结合之前做的motan笔记,有点豁然开朗的感觉,所以就写个博客来记录一下。

左边这张图大概是2个多月前第一次接触motan做笔记画的图吧,现在看起来真的很直观。

  1. motan就想图上画的一样,分为3个部分:Registry,RPC Server和RPC Client,各个部分详细的内容在图下方也有,看图就好。
  2. 我之前虽然有好好地看wiki(https://github.com/weibocom/motan/wiki/zh_quickstart),但是由于没有落地,只是看理论,确实很难理解。
  3. Registry就想一个第三方的调度器一样,将server和client联系在一起。我们项目的registry在一个服务器上。
  4. RPC Server就是服务提供方,但是Server中的服务大多是Service接口、ServiceImpl两部分。RPC Server将Service接口暴露给RPC Client,但是RPC Client光有这个空接口是不能使用服务的,必须根据提供的Service接口向Registry订阅服务。同时,RPC Server端把实现Service接口的服务ServiceImpl在Registry中注册,RPC Client通过Service接口在Registry获取RPC Server提供的服务Serviceimpl。
  5. 上面2点就是我对motan的个人理解,至于细节方面可以结合左图下面的思路看wiki。motan一般都是在公司内部使用的。比如我们的webtest就是因为超级土豆写的后台接口还没发布,我只能通过motan去调他那边的服务。

终于好像懂motan了!!!的更多相关文章

  1. 终于搞懂了vue 的 render 函数(一) -_-|||

    终于搞懂了vue 的 render 函数(一) -_-|||:https://blog.csdn.net/sansan_7957/article/details/83014838 render: h ...

  2. 我终于弄懂了Python的装饰器(一)

    此系列文档: 1. 我终于弄懂了Python的装饰器(一) 2. 我终于弄懂了Python的装饰器(二) 3. 我终于弄懂了Python的装饰器(三) 4. 我终于弄懂了Python的装饰器(四) 一 ...

  3. 我终于弄懂了Python的装饰器(二)

    此系列文档: 1. 我终于弄懂了Python的装饰器(一) 2. 我终于弄懂了Python的装饰器(二) 3. 我终于弄懂了Python的装饰器(三) 4. 我终于弄懂了Python的装饰器(四) 二 ...

  4. 我终于弄懂了Python的装饰器(四)

    此系列文档: 1. 我终于弄懂了Python的装饰器(一) 2. 我终于弄懂了Python的装饰器(二) 3. 我终于弄懂了Python的装饰器(三) 4. 我终于弄懂了Python的装饰器(四) 四 ...

  5. [转]我花了一个五一终于搞懂了OpenLDAP

    轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的 ...

  6. 探索JAVA并发 - 终于搞懂了sleep/wait/notify/notifyAll

    > sleep/wait/notify/notifyAll分别有什么作用?它们的区别是什么?wait时为什么要放在循环里而不能直接用if? ## 简介 首先对几个相关的方法做个简单解释,Obje ...

  7. 什么叫工业4.0,这篇接地气的文章终于讲懂了(ZT)

    原地址:https://www.cnblogs.com/namei/p/6110382.html 笔者早年从事过工业自动化行业,后来去了几个城市,讲过<工业互联网与工业文明史>这门课,以至 ...

  8. 移动设备分辨率(终于弄懂了为什么移动端设计稿总是640px和750px)

    在我开始写移动端页面至今,一直有2个疑问困扰着我,我只知道结果但不知道为什么 问题1:为什么设计师给的设计稿总是640px或750px(现在一般以Phone6为基准,给的750px) 问题2:为什么我 ...

  9. 译《The Part-Time Parliament》——终于读懂了Paxos协议!

    最近的考古发现表明,在Paxos小岛上,尽管兼职议会成员都有逍遥癖,但议会模式仍然起作用.他们依旧保持了一致的会议记录,尽管他们频繁的进出会议室并且他们的信使还很健忘.Paxon议会协议提供了一种新方 ...

随机推荐

  1. Codeforces 975D. Ghosts

    Description 给出一条直线 \(a*x+b\) 上的 \(n\) 个点,每一个点有一个速度 \((v_x,v_y)\),求 \(T=[-oo,oo]\) 相交的次数乘以 \(2\) 题面 S ...

  2. js获取客户端用户IP

    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type=& ...

  3. 01.使用File类读写文件

    使用File类去读数据: 方法一:使用ReadAllBytes(); 方法 namespace _01.使用File类读写数据01 { class Program { static void Main ...

  4. oracle学习篇九:同义词

    Oracle数据库中提供了同义词管理的功能.Oracle同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性. 在Oracle中对用户的管理是使用权限的方式来管理的,也就是说, ...

  5. 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式

    1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...

  6. 微信小程序的button去边框

    wxml <button class='niu'>123123</button> css niu::after{ border:none; }

  7. null 和 undefined 区别

    ---恢复内容开始--- 1.在javascipt中,将一个变量赋值为undefined 或 null ,几乎没什么区别. 2. 在if语句中undefined  和 null 都会被自动转成fals ...

  8. MarkDown和流程图诠释你的代码

    写在前面:首先感谢导师-猴哥对我的认可(求多分享点编程经验.工具.多开课),学习编程是一个痛苦和快乐的过程,希望大家共勉 本文介绍MarkDown的基本语法.使用MarkDown画简单的流程图.使用X ...

  9. 签名&加密的区别

    https://www.zhihu.com/question/27669212/answer/38037256 就拿A给B发送经过签名加密信息来说: 1.A对信息签名的作用是确认这个信息是A发出的,不 ...

  10. SpringMvc-helloword

    说明:在此只说明helloword的简单实现,通过helloword例子先了解springMvc是这样工作的,然后在一步步的研究原理 配置web.xml 1.配置servlet servlet-cla ...