我依稀记得,刚到公司的时候,锋哥让我学习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. Aaja.pro 未定义

    问题描述:安装新系统后,将代码迁至新系统,所有用到ajaxpro框架调用ajax方法时均报“xx未定义”的错: 解决问题的过程 : 1.看看你在前台调用的方法的命名空间,方法名和后台的是否对应.在后台 ...

  2. 1.Vue.js的常用指令

      Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得 ...

  3. VS 正则表达式替换内容

    很少使用VS的正则替换功能,最近因为需要添加大量的默认值,但是又不想重新类,就想到了这个. 1.替换带有///描述的属性 查找的正则表达式: /// <summary>((.)*((.|\ ...

  4. Javaweb三大组件之一 servlet

    1.servlet基本使用 注意:单例:init只会执行一次    线程不安全 1.1 创建方式 (1)实现servlet接口[不使用] package cn.getword.servlet; imp ...

  5. Array、ArrayList和List三者的区别

    数组 class TestArraysClass { static void Main() { // Declare a single-dimensional array ]; // Declare ...

  6. 2015-08-19(i++与++i的思考)

    今天看到一个很有趣的东西,关于表达式优先级的问题.如下. ; int j=(i++)+(i++); j的值是多少? 分析:编译器是从左往右编译也就是说编译器先做(i++) 1.(i++)由于是++所以 ...

  7. iOS开发之Objective-c的AES128加密和解密算法的实现

    #import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> #import <Comm ...

  8. AS打包出现app:transformClassesAndResourcesWithProguardForRelease错误

    今天打包项目的正式签名APK出现以下错误,当时挺着急用的实在没办法就只能用测试apk凑合来对付一下了 Error:Execution failed for task ':app:transformCl ...

  9. 【Linux】sudo用户权限管理

    权力下放 一.权力分配- sudo Sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的"权力",让 他们执行一些只有超级用户或其他特 ...

  10. 面向切面编程-AOP的介绍

    AOP简介 AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象 ...