说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

从远程调用框架认识Zookeeper

HTML文档下载 WORD文档下载 PDF文档下载
在Hadoop的学习过程中,Zookeeper是让很多初学者困惑的技术,夏俊认为远程调用服务是一个很适合Zookeeper应用的场景,他从自己设计的远程调用服务架构谈起,详细介绍了Zookeeper这一应用场景。

编者按:作为Hadoop的子项目,Zookeeper多数情况下是配合Hadoop的工作,但Zookeeper还有更广泛的应用场景。Zookeeper是Google Chubby的开源实现,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,维护和监控数据的状态变化,做到基于数据的集群管理。本文转载自夏俊的博客,作者从远程调用服务的架构来认识Zookeeper,相信读完本文,对Zookeeper也会有新的认识。以下为文章内容:

远程调用是系统或进程间的通信机制,是分布式系统开发的核心技术。远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型、性能更高的计算机系统。

远程调用服务的架构设计总述

首先我们要深入理解以下几个问题:为什么应用软件服务里需要一个远程调用服务?远程调用服务解决了软件设计中的什么问题?

笔者曾写过一篇关于分布式网站架构设计的文章, 在文章开头就把这个新的网站架构方案和传统的企业软件的B/S架构作了对比,笔者将一个网站里提供业务服务的组件抽象为独立的服务系统,接收用户信息的逻辑部分抽象为前端系统,服务系统和前端系统使用netty这样的通讯组件进行通讯。而到了讲解远程调用服务的框架设计时候,将netty通讯组件进一步抽象为一个通讯独立系统及远程调用服务,这就是为什么要设计远程调用服务的缘起了,远程调用服务会带来了网站架构的升级,如果传统的企业B/S架构为1.0版,前端和业务服务端分离为独立系统则是2.0版,那么引入了远程调用服务网站就是3.0版了,3.0版的架构带来的好处就是可以将N多的前端系统和N多的业务服务端系统融为一个整体,网站的规模会越来越大,提供的服务也会越来越多,这既避免重复造轮子的问题还使得网站规模越来越大。


3.0版网站架构总图

有了远程调用服务,我们可以做到业务级别的集群,例如:一个制造企业,一般都会有采购业务,生产业务、销售业务以及财务业务,按照传统的思路我们都会给每个业务独立开发一个系统,如果引用了远程调用服务,我们可以将这些业务都做成独立的服务,这些服务组成业务集群,而这些服务都是用统一的远程调用服务作为操作的入口,这样前端的调用者可以做到应用的统一。所谓的应用的统一淘宝网站是最典型的代表,我们在一个同一的网站里可以操作各种不同的应用,而不会发生因为应用的不同我们就得重新访问新的地址或者重新登录到另外一个系统里做其他业务的操作。而服务端这边,完全可以摆脱传统的客户端和服务端耦合的开发,增强了整个服务端的专业性和稳定性,这样更易于服务端的扩展性和可维护性。如果服务端之间也需要相互调用也可以通过远程调用服务实现,由于远程调用服务的统一性,这样就避免了服务调用之间报文和调用方式的不统一,规范了整个开发的流程。如果远程调用服务还有负载均衡功能,整个服务集群就变成了一个私有的云,所以说远程调用服务是云计算的重要组成部分,这个说法一点都不为过。

远程调用服务技术原理


远程调用框架

传统的服务调用都是服务提供者和服务调用者的直接调用,从架构图里我们看到这里多了一个远程调用管理组件,远程调用管理组件是一个独立的服务系统,为了保证该系统的稳定性,它也一定是一个分布式的系统,但是这个分布式系统和Web的分布式系统是完全不同的分布式系统。传统Web应用集群是基于HTTP协议的无状态的特点设计的,因为每个HTTP请求都是一个独立的事务,不同请求之间是没有任何关系的,所以我们可以将Web应用部署到不同服务器上,请求不管到了那台服务器,都能正常的给用户提供相应的服务,但是Web应用的session机制是有状态的,所以传统Web集群都是要有session同步的操作,大型网站往往会把session功能抽象为独立的缓存系统,但是这里的远程调用管理组件的集群原理或者说分布式原理是有别于Web应用集群分布式原理的。远程调用管理组件可以当做一个注册中心,它会记录下服务提供者和服务调用者的相关信息,并将这些信息推送给服务提供者或者服务调用者,为了保证系统的执行效率,这些注册信息都是记录在内存里。我们试想下,如果这些注册信息丢失,整个系统将会不可用,因此远程调用管理组件的集群是一种保证数据可靠性和服务提供健壮性的集群,而不是建立在HTTP无状态特性基础上的集群。

我们这里假想下远程调用服务的集群运行场景,我们假如有5台服务器作为远程调用服务运行的服务器,那么每台服务器都必须有注册信息的冗余备份,当服务运行时候其中一台服务器发生了故障,这台故障的服务器上的数据不会丢失,此外集群应该还要有一个检查故障的机制,当发现有台服务器不可用的时候,能及时剔除该服务器,而Zookeeper就是解决这种问题的技术框架。此外除了保证系统的稳定性和可用性外,集群的数据存储方式也是很重要的,前面我讲到集群的数据存储要有一个冗余机制,除了冗余机制还要有一个很适合快速访问和读写的数据模型,而Zookeeper正好包含这种数据模型,所以我设计的远程调用服务是一个很适合Zookeeper应用的场景。

远程调用管理组件还有一个心跳机制,心跳机制的作用是检测服务提供者的健康性及服务提供者是否可用,服务提供者启动时候会将自己的注册信息发送给远程调用管理组件,这个注册信息里包含服务端的IP地址和端口号,远程调用管理组件会启动一个线程,根据定时对这个IP地址和端口号去ping这个IP和端口号对应的应用是否可用,如果不可用远程调用管理组件会反复尝试几次,这个次数和多久检测心跳都是可以配置的,如果反复几次还是不通,那么就认定该服务不可用了。有网友在QQ上问我,为什么不检测服务调用者的心跳,这个完全没必要,调用者是主动方,提供者是被动方,这就好比你访问网站,如果你生病了不去访问了,系统没有必要检查你是否已经生病了。

苹果发布支持iTunes Radio服务的iTunes 11.1测试版 诺基亚将发布Treasure Tag配件 让你再也不怕丢东西 从三大互联网巨头布局,看移动时代的商业逻辑 亚马逊应用商店:一个开发者走向世界的机会? 企业级App探索:开发者们的正途在哪里? 如何有效地在海外市场推广产品? 网站转化率统计分析及优化方案 从资深设计师那我们能学到什么? 原作者使用Go开发memcached替代版,现已扎寨谷歌多个项目 像证券一样交易云资源,Zimory一年内收入翻两番并获德国证交所青睐 移动SDK崛起:未来会不会整合成一大坨? 关于 VS2010 异常捕获 在线编程教育平台Treehouse推免费iPad应用 微软发布Windows 8.1企业预览版 功能更强劲 如何管理和优化日益增长的代码复杂度? SDCC 2013大会讲师名单议题更新 8月1日前3.8折优惠截止 IBM Rational首席技术官:DevOps是一门哲学 Mozilla联手黑莓推进Web安全技术,推出开源测试平台Minion 苹果如何培养SOHO一族高效工作 再造Ruby:CryENGINE 3.5游戏引擎特性详解 Eclipse基金会涉足物联网,M2M标准是否已获东风? SDN部署前必须考虑的7个事项 【云先锋 40】初创公司DataStax:专注于Cassandra,三年融资8370万美元 内容创作工具的革新:Facebook前CTO推文字处理应用Quip 微软为Android手机推出Office 仅面向Office 365用户开放使用 编程、创业、开源感悟——SDCC 2013讲师云风专访 原生广告:移动推广的热门新宠 隐私之战:金山手机毒霸宣布开放安全检测平台 世界人民的头上有张监控大网——Xkeyscore 美国“监控门”情报收集系统 X-Keyscore 技术揭秘 为啥REST如此重要? 简单问题 没有激情以后还能干什么? 如何实现基于对话框的程序不在任务条里显示? 十六大闭幕 用Delphi、Mysql的大侠帮忙看看吗?---急急急急 别人的东西,学习c的朋友看看吧。 高手请指点! 表示严重不满:jbuilder下居然不能用鼠标的滚轮~ 如何将HTML文本直接显示在CppWebBrowser中?(不使用临时表) PB中有没有类似VC中ListMember功能的东东呢? 怪啊怪啊,ListView的问题 如何取得任务栏的高度? 哪里有《Effective STL》下载? 哪里有《Effective STL》下载? Load Servlet ? word 和 数据库 谁能帮我看一下程序? 帮我看看这几个宏什么意思? 程序员!女人对你重要么???? 这是我第四天的C#学习笔记,敬请高手指教 谁先回来马上给分(简单问题) 机器的usb问题!! 兄弟们,小弟刚接触JSP,帮忙解决一个问题。 请教PHP.INI配置里的SESSION! 刚开始接触.net 求购程序,请进. 求购程序 求购程序 推荐一些适合初学者看的书吧 一家位于Montreal, Canada的公司,求购一个程序 如何保存UNICODE的字符串到硬盘上 如何将HTML文本直接显示在CppWebBrowser中?(不使用临时表) 如何保存UNICODE的字符串到硬盘上 redhat第4第5两个iso文件是做什么的 关于jsp做客户端调用ejb的问题?????望各位兄弟们救救我吧!!!!! COOL!将所有菜单设置为半透明的代码(只适用于WIN2000以下版本) 请问谁知道如何用jakarta-jmeter进行压力测试? 如何判断文件夹是否存在 在Win2K Server安装Oracle817时,没有安装数据库,后在创建数据库时出现"ORA-12560:TNS:协议适配器错误"... 请教.net服务器问题 解决这个问题,给你200分!!!!!!!!!!(回头追加给你!) 我是初学者,请问.net framework先进性在哪里? 有谁试过用JAVA编FTP软件? 很简单的listBox问题,HELP 今年大四,现在找工作,求助,我怎么样………UP有分。 寻找!! IE的文本输入框,输入一字符会联想,请问怎样去掉这个联想?(Win2K) 哪位大俠能賜教 哪位大俠能賜教 你们说VC到底要学些什么?VC更偏底层,总做这种纯技术总也做不完。迷茫~~~ 请问,在Oracle里建trigger是不是有什么说法呢?一个正常的不能在正常的trigger在Oracle里运行也说compilation errors. 查字的读音(三点水加上面是个口,下面是个巴)的这个字 写30句比喻句 Is this her map?(改为同义句) 三点水+1个“我”是个什么字?但是确实是有这个字的. 有关抵制不良诱惑的高中作文800字议论文 女字加谬的右边怎么读就是秦朝是谋反的那个人 请帮我找一下“轻轻地”类似这样的词 现在呢?据说火星上发现了古生物的化石,不知是真是假本人也算是天文爱好者吧 越具体 分越高哦 学练优 第21页 第五题正方形÷8=空心三角形……空心圆形正方形÷空心三角形=实心圆形正方形÷5=实心三角形……实心三角形问:空心圆形最大可填( )空心三角形最小可填( )实心三角形 went back home中home什么词性 用一个字表示“坚持”这个词这个字是动词 给“静”组词填空,不能重复使用.(注意:我以填“安静”"肃静""静静”) 有一个词,意思是吃,其中一个字是服,这个词是什么. 能否用一个字来表示“坚定”这个词? 给“静”组词填空,不能重复使用.(注意:我以填“安静”"肃静""静静”)1遇到事情咬沉着(),不能慌张 指南这个词是什么意思? 他说话快.改成比喻句 从“平静、宁静、肃静、寂静”中选词填空.1.薯色笼罩下的田野一片(),连鸟的声音也没有.2.没有风的月夜,海面上显得格外()。我们躺在海滩上,细听大海的呼吸声。3.在祝捷大会上, 麻烦各位帮我翻译一下这句话,翻译成英语.不知道是自己太没用了,还是爱得太过火,明明决定好的事情,居然那么容易变挂,如果哪天结果并不是我想的那样,我想我会疯掉.伴着担心与害怕,我决 阅历什么意思、两次用“自以为”这个词表现了什么、 火星上真有这种地貌吗 matlab的平方指令 比如说n个a(数字)相乘 怎么用函数写 采用后另有高分 广东话淡这个字怎么发音啊? 三大宗教.基督教主要分布在欧洲美洲大洋洲.还有伊斯兰教,佛教,主要分布地都记乱了,有没有好方法? 如何在matlab中使得输出的传递函数是因式相乘的形式 建立希望工程就是为了能够实现贫穷孩子们的梦想翻译成英语 火星有自然卫星吗? 下列行星中,卫星最多的是 A、木星 B、土星 C、火星 D、海王星 书是钥匙,能开启智慧之门.书是?仿写!多点, 八大行星中直径最小的行星除了冥王星 以下行星中,卫星数最少的是 木星,土星,火星,水星 写出含有“手”字的成语形容聪明( ) 形容冷淡( )形容亲密( ) 形容高明( )形容凶狠( ) 形容没准备( )千 钧 一 发千 军 一 马千 ( ) 一 ( ) 佛教当中所说的妄想分别执着是指什么? 宇宙的行星有比木星的大吗木星在宇宙是第一大把~不是把 先在知道的行星有比木星大的有吗 英语翻译一日院主请师上堂.大众才集.师良久.便归方丈闭门.院主逐后曰.和尚许某甲上堂.为什麼却归方丈.师曰.院主.经有经师.论有论师.律有律师.又争怪得老僧.师问云岩.作什麼.岩曰.担屎. 请问下佛说的妄念是什么意思 买消毒柜,樱花消毒柜和华帝消毒柜选哪种好? 用英语翻译"这个真理放之而皆准" 佛教中的妄想是什么意思? 1.Lucy had already completed the project when I arrived.(改一般疑问) 时间见真理用英语怎么翻译 佛教所说的:执着、分别、妄想是什么意思? 哪种消毒柜好?请问下面两种消毒柜哪种好一点,请说出理由,越详细越好,谢绝大篇理论灌水:康宝消毒柜 嵌入式消毒柜ZTP108E-11T(1)万家乐 嵌入式消毒柜YTD100-W2(W2A) 翻译并解释用法La poste est par la.重点是par la 平静 宁静 幽静 恬静 哪个不是同一类词 the thieves had already gone.变成反义疑问句 写比喻句,超简单,快来啊!从“星星”、“树”、“太阳”、“云朵”这四个本题中任选三个进行3中类型的造句.三种类型分别为:1、形状相同2、已经想通3、同形不同意慢慢领会吧,比喻句就 幽静、安静、恬静、寂静中,哪个不同类 I am Lucy.怎样改为一般疑问句? 古诗里哪些字只要一个字就能表达很深的意思? 表示心情非常不平静的词 与大大小小同类的词语 30句比喻句急用 This is my comb(改成同义句)This__________ ____________ ______________. 穿的英文 急需30个最新比喻句!要最新的啊! whose is this comb?同义句转换 补充句子.书是钥匙,能开启智慧之门;书是. 比喻句三十句 女字旁加暖字右边的字读什么
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘