背景以及说明:

最近逮到个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储备的更多相关文章

  1. 深入学习Motan系列(五)—— 序列化与编码协议

    一.序列化 1.什么是序列化和反序列化? 序列化:将对象变成有序的字节流,里面保存了对象的状态和相关描述信息. 反序列化:将有序的字节流恢复成对象. 一句话来说,就是对象的保存与恢复. 为什么需要这个 ...

  2. 深入学习Motan系列(四)—— 客户端

    困惑的袋鼠,对框架的把握有些茫然,但是仍然一步步向前,行动总比一直迷茫停止不前要好,您说呢,各位客官? 这篇开始客户端的分析.有些地方的代码,就不每段都标出了,中间有跳跃的地方,请自己对照代码来看.鄙 ...

  3. 深度学习Dubbo系列(入门开篇)

    此文档为系列学习文档 这系列文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性.在接下来的文章里会详细介绍. 如果你正依赖dubbo作为你业务工程的RPC通信框架,这里可以作为你的参考手 ...

  4. 深入学习Motan系列(二)——服务发布

    闯关经验: 袋鼠走过了第一关,顺利搭建出了Demo,信心爆棚.不过之后,心想怎么去研究这个框架呢.查了一下,官方文档,好像没什么东西可以研究啊.后来,又搜了搜博客,因为这是微博的框架嘛,所以搜索时用百 ...

  5. 深入学习Motan系列(三)——服务发布

    袋鼠回头看了看文章,有些啰嗦,争取语音简练,不断提高表达力!袋鼠奋起直追! 注:此篇文章,暂时为了以后时间线排序的需要,暂时发表出来,可是仍然有许多地方需要改写.自己打算把服务端发布,客户端订阅都搞定 ...

  6. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  7. 超全PHP学习资源整理:入门到进阶系列

    PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...

  8. MyBatis学习总结-MyBatis快速入门的系列教程

    MyBatis学习总结-MyBatis快速入门的系列教程 [MyBatis]MyBatis 使用教程 [MyBatis]MyBatis XML配置 [MyBatis]MyBatis XML映射文件 [ ...

  9. 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...

随机推荐

  1. prototype:构造函数的真相、原型链

    函数不是构造函数,但是当且仅当使用 new 时,函数调用会变成 ‘构造函数调用’.那么对 ’构造函数‘ 最准确的解释是:所有带 new 的函数调用. Nothing 只是一个普通的函数,但使用 new ...

  2. docker pure-ftpd

    FROM alpine:3.7ADD http://dl-4.alpinelinux.org/alpine/edge/testing/x86_64/pure-ftpd-1.0.47-r0.apk /r ...

  3. 第一章 使用功能测试协助安装Django

    1.1 第一个简单的测试--断言 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://lo ...

  4. 用MyEclipse开发REST Web Service

    MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 使用MyEclipse开发RESTWeb服务来放大您的Web应用程序.在本教程示例中,您将创建一个简单 ...

  5. CountDownLatch在多线程程序中的应用

    一.CountDownLatch介绍 CountDownLatch是JDK1.5之后引入的,存在于java.util.concurrent包下,能够使一个线程等待其他线程完成动作后再执行.构造方法: ...

  6. SQLServer查询当前数据库所有索引及统计,并使用游标批量删除

    --查询现有所有数据库表的索引情况 Select indexs.Tab_Name As [表名],indexs.Index_Name As [索引名] ,indexs.[Co_Names] As [索 ...

  7. nginx配置文服

    修改nginx.conf 添加如下内容 autoindex on; # 显示目录 autoindex_exact_size on; # 显示文件大小 autoindex_localtime on; # ...

  8. system的消息队列实例

    1\创建或打开消息队列函数原型:int msgget(key_t key, int msgflg)参数第一个参数为ftok方法创建的一个kety_t或者为一个整数值第二个参数为逻辑控制,IPC_CRE ...

  9. 实力封装:Unity打包AssetBundle(番外篇)

    前情提要:第二种打包方式. 自定义AssetBundle包扩展名 在之前的教程中,我们已经多次提到过扩展名了,并且也已经说明了如何设置自定义的AssetBundle扩展名.至于为什么还要把它单独拿出来 ...

  10. php多进程和多线程的比较

    前言 最近在学习php多进程和多线程的编程.说实话,这两样在工作中几乎都没有用到,毕竟php并不以异步处理擅长,对于网络请求同步处理可以解决绝大多数问题.但是既然有这样的机制,也了解一下,对于以后接触 ...