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

从远程调用框架认识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上问我,为什么不检测服务调用者的心跳,这个完全没必要,调用者是主动方,提供者是被动方,这就好比你访问网站,如果你生病了不去访问了,系统没有必要检查你是否已经生病了。

取其精华 IE11里移除和新增的功能 大胆预测亚马逊即将推出的五大产品或服务 移动周报:GitHub章鱼猫中国之行 三星与LG的新动向:同样的物联网 ,不同的玩法 从Twitter到Tinder,看社交媒体在2013年的沉浮 一周消息树:有道周枫和他的“放养”团队、太极助手惹“非议” Netflix:使用大数据驱动商业决策 “中国杯”游戏极限开发大赛报道 回顾2013软件开发:JavaScript领风骚 京东“宙斯杯”创新应用大赛,百万奖金为“你”而等待 12306上的分布式内存数据技术GemFire Canalys:苹果、三星2014年仍统治平板市场 微软压力山大 Google和苹果的下一个战场 回顾2013科技界大事件:Mayer登Vouge杂志、Ballmer离职 《近匠》第03期:移动开发工具访谈,AVOS Cloud——后端的金刚钻 次世代视觉:Avegant Glyph智能眼镜技术解析 技术栈的选择:从Groupon转向Node.js、淘宝去IOE谈起 首席数据官:一个属于你的时代已经来临 盘点2013年Facebook七大最受欢迎的hack 见证中国开源的力量:“开源力量”2013年度庆典活动亮点汇总 专访APU13讲师、西电朱虎明:概念难以理解成异构编程最大阻力 盘点2013:21款最优秀的开源数据库 苹果三星再次谈判,欲和解所有侵权案 应对iOS in the Car,Google将携手奥迪推Android车载系统 10个技巧让你更轻松地使用AWS 《近匠》第04期:移动开发技术访谈,多看科技CTO王毅——阅读未来 2013年Linux领域重要事件回顾 2013年12月操作系统份额:Windows XP跌破30%大关 Linux小幅上涨 Snapchat存安全漏洞 460万用户信息被窃 年底广告高峰:AdMob团队支招“马上赚钱” 从远程调用框架认识Zookeeper 打开adsl的猫机器能自己启动为什么? 神洲数码怎样? linux中如何得到某个网络设备的ip地址? 请教ADO的Recordset对象的Delete的问题 请问jbuilder的参考书,哪本比较好?市面好像种类比较少 请问怎样获得临时表的记录? @@@@@@@@@@如何使我的折线图随着时间移动@@@@@@@@@@ 菜鸟问:各位大哥看c++ primer的时候是用什么编译器? 神洲数码怎样? jsp如何将web页面的String型转换为long型? 极容易的问题 ,先来先得! 大虾,救命啊!!!!!! jsp如何将web页面的String型转换为long型? ★★★帮忙翻译一句话!谢谢★★★ **冗余醒目**《如何在输入的时候减小冗余》**冗余醒目** 倡议书:维护您的网络权益 [100分,两日内结]怎样在jsp中得到我的数据 两个菜鸟问题,送分拉 线程与消息??? c、odbc、嵌入式sql的关系? 简单的重载问题! 用<input type="fiel" name="test">时,怎样判断输进去的文件是硬盘上实际存在的? 请问哪里有eclipse 下载? FINDING SOMEBODY! 显示器不亮,请帮忙,解决给100分 写在3.15黎明的前夕 **冗余醒目**《如何在输入的时候减小冗余》**冗余醒目** 各位,CSDN的论坛都是用些什么工具开发的?? 请问个位大虾,我的程序为什么不能执行(TC++3.0) 在VC中怎么调用IE来显示一个页面? 怎样在新开的页面给已开的页面上的一个TextBox插入新的字符串 [转贴]网络版权问题 **冗余醒目**《如何在输入的时候减小冗余》**冗余醒目** 用purify测试过的release版本怎么在别人的计算机上运行有问题? 如果用asp连接mysql,请问连接字符串是什么? 我要做一个在小型的对等网上运行的数据库软件,用什么方法好点? 如果用asp连接mysql,请问连接字符串是什么? 请高手帮我解答一个关于在ASP中调用存储过程的问题? 怎么输入繁体字? 足彩-03010期:1033031110310 请教高手在DELPHI里怎样实现把一个文件存储到ORACLE上, 然后又如何调出来使用?? 我快疯了救救我!!!!!!!!!! 我为什么要做个刁民? 屏幕上显示绘多条曲线,要对每条曲线单独进行操作如何实现? 怎样避开程序对softice和trw的检查 想学ACCP不知道社会的认可度? 怎样使用windowsxp/2000的修复程序? C:\winnt\下有一个hh.exe文件,有什么作用? 这首诗我觉得用在程序员身上也很合适 在WebSnap中如何实现gride的隔行显示不同颜色,就象我们现在看到的一样?? 关于《C++ Primer plus(中文版)第四版〉》,大家发表一下看法好吗。 高中物理竞赛预赛、复赛、决赛是在高几开始,分别有什么侧重点吗 美丽的反义词是啥. 汽车催化净化器每辆车都有吗 电子切于磁场边界入射会受洛伦兹力吗? 雷声是由什么震动产生的 黄土高原发展苹果生产,需改造的主要自然因素A 地形 B 热量 C 水分 D 土壤 带电粒子是否在磁场边界运动时偏转粒子在水平线段AB上运动,AB上边有磁场,下边没有.(AB为磁场边界,不受重力.)该带电粒子是否受电场力偏转? 雷声是下列哪种物质振动发生的?A 固体B 液体C 气体D 气体和液体 黄土高原发展苹果生产需要改造的主要自然因素是什么 长方体金属块浸没在水中,写出测量它所受浮力大小的试验方案(1)写出2种方案(2)写出运用的物理原理,试验器材,(3)写出最后的计算式(用设定的物理量符号表示) 雷声是什么在振动? 黄土高原与山东半岛苹果产区都位于“主要产地”是我国苹果的主要产区二者相比黄土高原苹果产区具有的优势是 ①夏季气温高、 降水多 ②气温日较差大有利于糖 会跳的纸青蛙怎么折才能跳得远 什么样的名词前加 an ,什么时候加a 与山东半岛相比,黄土高原生产苹果的优势条件是什么? 跳起来纸青蛙的折法在超感神探第一集里,男主角折了一只纸青蛙放在女主角的桌上,然后离开,一会过后纸青蛙自动跳了起来,好像被遥控了一样,请问那种纸青蛙怎么折啊? 什么单词前加AN.怎么区分加AN或者 A并且怎么知道单词的第一个字母的音标呢?我就是不知道单词第一个字母的音标.怎么能拼出音标来啊?还有就是有这样的题:“音标是\ei\的字母归一类. 为什么这个句子上不加a呢1.AVATAR is a fantastic movie.2.AVATAR is super movie.为什么第二个句子不加a 变成 AVATAR is a super movie. 用笔尖接触平面镜,观察笔尖和笔尖像之间的距离为6毫米,请问平面镜的厚度为多少原因 山西吕梁黄土高原适合种那几种中药材 为什么这个句子不加A呢That is nice dree,为什么不说成 That is a nice dress 呢,而That is a lovely hat却要加a呢? 谁发现带电粒子磁场中受力公式?BWQ是谁发现的公式?BIL又是谁发现的?都叫啥公式 比如F=MA叫牛顿第2定律第一行不是BWQ 是BVQ 纸青蛙怎么折来着?要跳的远的! 黄土高原适合种植opium吗?尤其是南泥湾那一带 问下:通电导体在磁场中受力的公式 怎么用纸折一个会跳的青蛙 什么时候加is有些句子如.Mr wang _____(leave)for Beijing tomorrow morning.我填的是leave可答案是is leave我搞不懂.不是每句话只能有一个动词吗可leave不算动词吗为什么要加is啊? 食品中水分的三种存在形式是什么除了游离水、结合水还有什么…… 用一个轻三角支架悬挂重物,已知AB杆所受的最大压力为2000N,AC绳所受最大拉力为1000N,∠α=30`,不使支架断裂,求悬挂物的重力应该满足什么条件?图:解析是:悬绳受到竖直向下的拉力F=G,这个拉力 英语 问题it is called后面什么时候加A什么时候不加呢,举例it is called a pilatus porter 如何用食品分析方法区分水分存在的不同形式 近义词和反义词怎么写? I后面可不可以加is为什么 I is a miracle 这句话要在I后面加is 食品中水分有哪些存在 用同一试剂就能把氯化钠、氯化铵、硫化钠三种溶液区分开?A硝酸银溶液 B氢氧化钠C氯化钡溶液D氢氧化钠溶液 青蛙为什么跳得远? 单位换算题, 右图是一个底面半径为3厘米的圆柱木块被削去一块后的形状,请你计算出它的体积. 怎样折青蛙跳的远 食物包括水吗 青蛙为什么能跳得比树高?w 黄土高原可以种植吗? 三个完全相同的 圆柱体,如图叠放在水平桌面上 ,将C柱放上去之前,AB两柱体之间接触而无任何挤压,假设桌面和柱体之间的摩察因数为M,柱体与柱体之间的摩察因数为N,若系统处于平衡,M和N必须 一个圆柱形状的奶粉盒,体积是5024立方厘米,底面半径是10厘米.它高时多少厘米? 黄土高原想重点治理水土流失,就要先种植什么?黄土高原想重点治理水土流失,就要先种植().A.椰枣 B.海棠 C.云杉 三个半径相同的无限长圆柱两两垂直相交,问三个圆柱的公共部分是什么形状,体积多少?三个半径相同的圆柱两两垂直相交,可设x轴,y轴和z轴分别为三个圆柱的中轴线,三圆柱半径都为R,且都是 给蓝天镶上银边的是什么(济南的冬天) 为什么要加a 保持近义词?坚持的反义词?新鲜的反义词? 济南的冬天中,“山尖全白了,给蓝天镶上了一道银边”这句话照应了那句话? ★为什么这句话之前不加不定冠词"a"★Knowledge is power.为什么这句话之前不加冠词"a"和"the" 遗憾的近义词和干脆、警惕、保持的反义词是?如题 要具体 《济南的冬天》 中“山尖全白了,给蓝天镶上一道银边”这句话 与第二段哪句话照应?要说明为什么! She's washing a plate.这句话里面应不应该加a,如果加a算错吗? 求助粒子进入磁场时的洛伦茨力方向粒子进入磁场时候,用左手定则判定洛伦茨力的方向,四指的方向是电荷进入磁场的方向吗?比如电子束进入磁场,那么四指的方向应该指向电子进入的方向, 美丽的近、反义词是什么? i am rich 要不要加“a” 洛伦茨力是什么 美丽的反义词是什么?^W^ Look!Tim isthrowing a ball这句话为什么要加is? 被控杀死杰克逊者出狱 称为谋生计想当圣马力诺执政官会见王毅王毅同圣马力诺外长瓦伦蒂尼会谈美国对监听国家分“三六九等”纽约手机可接收紧急警报韩国向美国求证韩总统是否遭窃听 但美猫鼬欲擒毒蛇当美食遭反击败阵(组图)中国赴刚果(金)维和工兵分队顺利通过羊晚集团派工作组对新快报存在问题进行美国在罗马尼亚的反导基地开建纽约手机可接收紧急警报强风暴过境德国致多地交通瘫痪美国与新西兰恢复联合军演国务院批复绍兴撤销绍兴县设柯桥区 撤Google加产数万副谷歌眼镜 20世行报告称全球营商环境改善翘臀又嘟嘴 壮汉翻拍“性感照”遭吐槽日本进入“胖女时代”或因对瘦人审美疲12岁黑客入侵加拿大政府网站 辩称仅11年来最强风暴袭英国 海陆空交通大英首相:媒体爆料美监听丑闻是“资敌”返程日 部分高速不堵车北京黑导游称一人40元带逛8景点 实张碧晨夺冠 那英再领跑欢迎来到锋狂时代日本“学术女神”博士学位缓期取消少年酒后骑摩托带人酿惨祸当局者说救人男子被伤者家属追打中国科技馆游客翻倍少儿英语万元起 年轻父母吃不消香港的明天一定会更美好《使徒行者》电影版开拍在即穿越3D15日流感疫苗集中开打动物眼中的黄金周喜出嫁喜庆生云南普洱发生6.6级地震郭宜品失联副市长被抓杂粮粥里最不能缺什么?河南新野4名猴戏艺人被拘
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘