深入学习Motan系列(一)——入门及知识zookeeper储备
背景以及说明:
最近逮到个RPC框架,打算深入学习,框架千千万,只有懂得内部原理,才能应对复杂的业务,进行自定义化系统。
这个系列的Motan文章也是自己慢慢摸索的轨迹,将这个过程记录下来,一是提升自己对框架的理解,二是让大家看到这个过程,解决心中学习的困惑,三是由于网上Motan的文章,大多感觉没有写的足够深入,自己想学习又找不到很好的东西,干脆,自己写,撸起膀子开干。
本篇目标:
了解Motan基本知识,搭建Motan Demo,对Zookeeper有个初步的认识。
1.概要
Motan是微博的框架,没有比官方介绍的更准确的了,直接上链接,http://tech.sina.com.cn/i/2016-05-10/doc-ifxryhhh1869879.shtml
对里面的东西有个大体认识就行,主要是Motan架构及模块设计下面的两张蓝色的图需要着重有个认识,困惑也没关系,带着困惑往后走。
2.tutorial --Motan Demo
新项目要干的第一件事,helloWorld. 还是贴个链接,因为别人写了一遍比较详细的文章,没必要再弄了。
https://blog.csdn.net/linuu/article/details/53115290
我照着做了,可以成功的做出来。照着文章中的东西,将Demo搭建起来。
需要注意的地方有如下几个:
(1)自己动手下载Motan源代码,因为需要编译后生成的xsd文件,以及后面学习时需要看源代码;
(2)motan-manager的war包,这里可以越过,因为它就是个页面管理端;
(3)我编译源码时遇到的第一个错,maven-javadoc-plugin XXXXXXXXXXXXX 什么什么的错误信息,意思是说源码的javadoc有问题,不规范。我的解决办法是直接将motan工程中的pom.xml文件中maven-javadoc-plugin那里的<profile>标签,整块注掉
(4)后续编译出现几处错误,都是test类的错误,直接将test类中的内容注释掉就可以了,简单粗暴,我喜欢
入门Demo有些短小精悍,不过成功跑出来就可以了。相信大家都成功搭建了,信心满满的进入下一篇吧!如果Demo没搭建成功,千万不要往后看,小心走火入魔!
当时走到这里时,袋鼠信心爆棚,心想不过如此,so easy!
3.Zookeeper
它能做很多事,其中一个功能就是作为注册中心。这个,是我们这次所关注的。(其余介绍百度搜一下,自己解决)
推荐下列文章:
Zookeeper用作注册中心的原理 https://www.jianshu.com/p/68a05b5af088
基于ZooKeeper的服务注册中心 https://www.cnblogs.com/valor-xh/p/6281502.html
如果之前对rpc框架没有了解的话,zookeeper的部分,可以读读上面两篇文章,帮助后面的理解。
Zookeeper官网 https://zookeeper.apache.org/
深入学习Motan系列(一)——入门及知识zookeeper储备的更多相关文章
- 深入学习Motan系列(五)—— 序列化与编码协议
一.序列化 1.什么是序列化和反序列化? 序列化:将对象变成有序的字节流,里面保存了对象的状态和相关描述信息. 反序列化:将有序的字节流恢复成对象. 一句话来说,就是对象的保存与恢复. 为什么需要这个 ...
- 深入学习Motan系列(四)—— 客户端
困惑的袋鼠,对框架的把握有些茫然,但是仍然一步步向前,行动总比一直迷茫停止不前要好,您说呢,各位客官? 这篇开始客户端的分析.有些地方的代码,就不每段都标出了,中间有跳跃的地方,请自己对照代码来看.鄙 ...
- 深度学习Dubbo系列(入门开篇)
此文档为系列学习文档 这系列文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性.在接下来的文章里会详细介绍. 如果你正依赖dubbo作为你业务工程的RPC通信框架,这里可以作为你的参考手 ...
- 深入学习Motan系列(二)——服务发布
闯关经验: 袋鼠走过了第一关,顺利搭建出了Demo,信心爆棚.不过之后,心想怎么去研究这个框架呢.查了一下,官方文档,好像没什么东西可以研究啊.后来,又搜了搜博客,因为这是微博的框架嘛,所以搜索时用百 ...
- 深入学习Motan系列(三)——服务发布
袋鼠回头看了看文章,有些啰嗦,争取语音简练,不断提高表达力!袋鼠奋起直追! 注:此篇文章,暂时为了以后时间线排序的需要,暂时发表出来,可是仍然有许多地方需要改写.自己打算把服务端发布,客户端订阅都搞定 ...
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
- 超全PHP学习资源整理:入门到进阶系列
PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...
- MyBatis学习总结-MyBatis快速入门的系列教程
MyBatis学习总结-MyBatis快速入门的系列教程 [MyBatis]MyBatis 使用教程 [MyBatis]MyBatis XML配置 [MyBatis]MyBatis XML映射文件 [ ...
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
随机推荐
- SQL-31 获取select * from employees对应的执行计划
题目描述 获取select * from employees对应的执行计划 explain select * from employees explain 用于获得表的所有细节
- 监控中的TP50
TP指标: TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值:配置此监控指标对应的报警阀值后,需要保证在 ...
- CPU的硬件结构和汇编语言
(已更正) 这个问题包括CPU的硬件结构和汇编语言的范畴. 这里梳理一下. 首先, 题主"李建国"自问自答的部分说的是正确的, CPU的指令集是软件与CPU这两个层级之间的接口, ...
- 201621123001 《Java程序设计》第7周学习总结
1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 掌握了NetBeans基本使用方法 掌握布局管理器基本概念 尝试了自己在界面布置组件 网格组布 ...
- NioEventLoopGroup的构造函数
loop是对thread的封装,里面记录一个selector 一套打完,看下来,就是loopgroup里面一个loop的数组,每一个loop在 new的时候,传入了selector(第二个箭头), 第 ...
- 32位linux(ubuntu) exec: arm-none-linux-gnueabi-g++未找到;The tslib functionality test failed!
请先参考:http://blog.csdn.net/ankwyq/article/details/7768809 通过上面那篇文章,我确实把问题又推进了一步,接下来就是下面这个问题: exec: ar ...
- 2-log4j2之使用根控制器输出日志到控制台
一.添加maven依赖 <!-- 使用aliyun镜像 --> <repositories> <repository> <id>aliyun</i ...
- C# string 与 String的区别
C# string 与 String的区别 The string type represents a string of Unicode characters. string is an alias ...
- webstorm 自动编译ts
1.在目录根目录添加tsconfig.json { "compileOnSave": false, "compilerOptions": { // 文件目录 & ...
- Hibernate乐观锁无法Catch到org.hibernate.StaleObjectStateException
Hibernate乐观锁无法Catch到org.hibernate.StaleObjectStateException时,请Catch HibernateOptimisticLockingFailur ...