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

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

云络网络科技CEO Steve Mushero:游戏行业的云运维 腾讯游戏运营管理中心总监刘栖铜:腾讯游戏云的理想与实践 一号专车产品总监曹景辉:LBS应用仍有无限的创新空间 昆仑游戏总裁张益豪:做好中国游戏的海外代理 游族首席运营官陈礼标:重点打造全球化IP 我是怎么利用微信月收入三万以上的! 我的Y Combinator黑客马拉松之感! 最炫HTML5 JavaScript框架Famo.us融资2500万美元 看板先驱David J. Anderson:看板方法拉动互联网时代敏捷变革 《近匠》增强现实开发团队LegendTech:AR技术现已加入15元豪华午餐 微软新技术:简单修改,手机摄像头摇身变3D深度相机 Black Hat USA安全隐患盘点及黑客奥斯卡颁奖 MDCC免费展位报名火热!数量有限,征集进行中 迪游信息科技CEO张晓雷:中日游戏面面观 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉! 微信公众平台开发——如何保证access_token长期有效? 拼的就是速度!超快HTML5 2D渲染引擎Pixi.js 一周消息树:百度“涉黄”遭警告,网盘内容审核的四种方式 微信开发商现状调查:接口限制成主要困扰 行业需求多样是最大难点 小米:海外扩张需谨慎,信息安全或成最大掣肘 AMD FX系荣耀归来 或成大众新宠! 脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 《近匠》Bmob:免费无限制的公有云服务 MDCC应用征集最新动态:3D手游成热点、硬件种类丰富 闪迪Ultra II SSD:采用TLC闪存,最低价为79.99美元 活见鬼,真气人....... 问一个trigger问题? 问一下:我的char*都用_T("asdfsafd")表示了,资源也没任何问题,可有时候运行程序显示乱码 在论坛里,发一个帖子新开一个窗口,当发完后让原来那个窗口刷新一下 我的机子到底怎么回事???? 我试试.. CListCtrl中如何选定整个一行? 来到济南天气太热,特来送分 ★★★★★ 见于现在伪ID和盗用密码的现象十分嚣张,我提议…… ★★★★★ 请教各位,我用vb6.0访问ms sql7.0数据库,为什么有时出现,“过期,数据已超时?” 请问COM和DLL有什么区别和联系?(30分) 关于侯老师 win95-a-developers-guide 一书的源配书... ISAPI中不能存取ASP中的Session、Application变量?高手你老人家在哪里? 大家来看看这些招聘题目合不合适 提一个网页制作的问题哈,大家不要扔西红市啊,网叶制作可是程序员的基本技能之一 activeskin里的skinbuilder有谁用过???来讨论吧 我在msdn上看到vb中的字符串有两种:定长字符串和变长字符串。请问如何分别声明这两种类型? 怎样在ADO中引用已打开的recordset的某一字段值,请给几个例,谢谢了! seedundersnow and holyfire help me!about 8253! 谁有cute ftp 4.2.6 beta的注册码 请问如何把页面查询到的记录导入到Excel中呢? 有用过TAdvStringGrid的吗?OnGetEditorType( )为何不被调用? 请教高手如何用Xsl编制函数控制Xml??急急 哪位给一个MD5的例子!谢谢了 长春的李延生来领分 求救:一个VC中多线程的问题 提个问题,原来对VC尤其是界面和C++语法这一块比较熟,现在由于公司需要转C++BUILDER,难不难,需要熟悉哪些 [总300分,会继续加分]哪位大哥用编程实现过创建SQL Server的DTS package并且run the package的全过程[急] 能不能使用html 压缩中提到的文件头有什么作用 , 保含哪些信息 菜鸟问题1 提一个网页制作的问题哈,大家不要扔西红市啊,网叶制作可是程序员的基本技能之一。。。。。。。 关于:import java.util.StringTokenizer; 问题! 如何实现在某特定时间(如每月1号,或7天后)执行特定asp程序? 在开发工具中如:(vc,jsp)中如何得到oracle中自定义函数的返回值 当form被移动的时候会相应什么事件的? 关于使用mscomm32.ocx中的一些问题 类似股票信息显示系统的问题(图形显示) 强烈抗议:无怨无仇,为什么冒用我的ID 写一些乱七八糟的东西????? 一个简单的线程问题! 请问高手:两个类之间的关联关系如何实现? 各位请问, 我的系统要求支持三种语言, BIG5,GB2312,ENGLISH,数据库应该怎样设计!! 求救!!!vfp ,控件 optiongroup1, 属性 ButtonCount=N,如何给第N个OPtionN.Caption赋值 假如上天给你一个机会。。。请看过来。。。 如何配置IIS 使其利用TOMCAT 支持JSP AND SERVLET ? 请问:ORACLEH中保存每列的数据类型的系统表名叫什么? !!这个简单的问题,没解决!!!给分!! 对公的帐号不能向私人帐号汇钱,怎么办? wm_keydown 中 wparam 和 Lparam 中高位和低位所表示的意思是何东西 我用 ADO 从数据库里读数据,当记录实在太多了的时候就死机了,该怎么办? 笨问题:JAVA如何设置全局变量,要在所有的类和整个程序中有效 (2012•台湾)判断下列哪一组的a、b、c,可使二次函数y=ax2+bx+c-5x2-3x+7在坐标平面上的图形有最低点?(  )A.a=0,b=4,c=8 B.a=2,b=4,c=-8 C.a=4,b=-4,c=8 D.a=6,b=-4,c=-8 设X1,X2是一元二次方程X²+4X-3=0的两个根,2X1(X2²+5X2-3)+a=2,则a=? x平方-3[2x-5(x平方-x+1)] 分解2x四次+3x三次减5x2次+3x+2 计算:1的平方-2的平方+3的平方-4的平方+5的平方-6的平方+...+2001的平方-2002的平方+2003的平方-2004的平方. (x+5)的平方-(x-2)(x-3) 若x3+5x2-12x+m有因式x-3.则m=? 1.(2√3-3√2)的平方 2.(3√5+2√6)(2√6-3√5)3.√2(√2-√6)+(1+√3)(1-√3)4.(2√3-3√2)(2√2+√3) 如果3x的平方-2x=2,求(x的平方+5)-2(-2的平方+x+3)的值 下列何式为5x^2+17x-12的因式?A:x+1 B:x-1 C:x+4 D:x-4 说出理由啊 , (x+2)(x-3)-2(x-6)(x+5)-3(x平方-5x+17),x=5.5 若2÷(3*x的平方+2x+5)的值为1/3,则1/(6*x的平方+4x+1)的值为? 分解因式5x2+6xy-8y2 (1/2-3+5/6-7/12)*(-6)的平方 100x9.5x0.98+9.5x2简便运算 设x2+ax+b是xn-x3+5x2+x+1与3xn-3x3+14x2+13x+2的公因式,则1+a+b=() 1=1的平方 1+3=2的平方 1+3+5=3的平方 14/5-(3.5x2/7+3.2x1/4)(简便计算) 抛物线y=-0.5x2+2.5x-2与x轴相交于点A,B,与Y轴相交与点C.1.求证:ΔAOC相似与ΔCOB2.过点C做CD//X轴交抛物线与点D.若点P在线段AB上以每秒1个单位的速度由A向B运动,同时点Q在线段CD上也每秒1个单位 (√5+1)(√5-1)= (2-√ 7)(√7+2)= (2√3+1)平方 (7-√3)(2√3+1)=(√5+1)(√5-1)= (2-√ 7)(√7+2)= (2√3+1)平方=?(7-√3)(2√3+1)= 7.5X2.1+75Xo.79怎样简便运算 1*1等于1,根据提示写成语还有12345679 24.(13分)如图,在平面直角坐标系中,直线y=-x+3与x轴、y轴分别交于点B、C;抛物线y=-x2+bx+c经过24.(13分)如图,在平面直角坐标系中,直线y=-x+3与x轴、y轴分别交于点B、C;抛物线 -4的平方+3×(-2)的平方+(-5)÷(-3分之1)的平方 0+0等于一什么成语 已知:如图12,抛物线y=-4/5x²+mx+4与y轴交于点C,与x轴交于点A、B,(点A在点B的左侧)且满足OC=4OA.设抛物线的对称轴与x轴交于点M:(1)求抛物线的解析式及点M的坐标;(2)联接CM,点Q是射 观察1的平方+2的平方>2*2*1 3的平方+5的平方>>>> 拍立得相机拍出来的照片效果相当于数码相机的多少像素 如图,抛物线y=-0.5x2+0.5x+6,与x轴交于A、B两点,与y轴相交于C点已知E点(0,-3),在第一象限的抛物线上取点D,连结DE,使DE被x轴平分,试判定四边形ACDE的形状,并证明你的结论为什么D坐标是(3,3) 1+2+3+4+5+6的平方 9 8 7 6 5 4 3 2 1中间加上加减号等于21咋写 急 如图,抛物线y=-x²+5x+n经过点A(1,0)与y轴交于点B 杨辉三角形有什么规律? 5X^2-2根号15X+3等于0, 5x2-4(a+3)x+a2-29=0 谁能帮我讲一下杨辉三角 我数学不好,有点看不懂,有一道例题(x+2)^5 我想知道系数确定了,剩下怎么办 若y等于根号下5x减1再加根号下1减5x,则5x加y等于几 5X2—3因式分解 谁能告诉我杨辉三角中有哪些数学规律啊~~~ 大家帮帮忙了哦~!~~! 已知A=4x²-10x+8,B=5x²-6x+8,C=2x²-3,①求(a-b)*C②当X=-2时,求(A-b)*C 2x一10二4.5x2怎么算? 数学上杨辉三角怎么运用?如求(a+b)^4 ,(a+b)^5 ,(a+b)^6等,怎么运用杨辉三角来简便运算?(系数我懂,是依次来的,可问题是那些字母的幂数是怎么安排的?)也可以举几个例子让我看懂就好, 4/5x2=4x2一5x2=8/10=4/5是对还是错 (负1减二分之1)乘(负1减3分之1)乘.乘(负1减10分之1) 椭圆5x2+ky2=5的一个焦点为(0,2).求k的值这是一道椭圆方程题,请书写全过程. 当x变化时,分式3x2+6x+5/0.5x2+x+1的最小值为多少3x2,0.5x2指3倍的x的平方,0.5倍的x的平方尽量按一元二次方程格式 (负3又3分之2)十(负6分之一)= 点(0,4)是椭圆3KX2+KY2=1的一个焦点 求k 已知A=4x²-10x+8,B=5x²-6x+8,C=2x²-3,求(A-B)C分解因式 (负1.3)十[负4(负2负7)]= 椭圆8k2x2-ky2=2的一个焦点为(0,√7)求k的值.书里面没有过程的答案是:k=-1或-1/7再次抱歉!题应该是8k2x2-ky2=8我毫无怨言! 6x-6.5x2=8求方程 数学题所有的要过程3/5X2/11+2/11÷5/2 48X(1/2+5/6+3/8) 2又5/8X9.25+7又3/8X9又1/47/9÷11/8X(1/4+2/3) 7/18÷[(5/7-1/3X7/16] 请不要嫌麻烦 若椭圆2kx2+ky2=1的一个焦点为(0.-4),则k的值为 已知A=1-x2,B=x2-4x-3,C=5x2+4,求多项式A-2[A-B-2(B-C)]的值,其中x=-1 超急! 利用EXCEL确定x3-5x2-4x+6=0近似解?1)x为-9、-8、-7、-6、-5、-4、-3、-2、-1、0、1、2、3、4、5、6、72)x为-1.6、-1.5、-1.4、-1.3、-1.2、-1.1、-1、……、0.6、0.7、0.8、0.9、1、1.1、……、5.2、5.3、5.4、5.5 已知F是椭圆5x2+9y2=45的左焦点,P是此椭圆上的动点,A(1,1)是一定点,求|PA|+3/2|PF|的最小值,并求点P的坐标 已知多项式x2-(a-1)x^3+5x2-(b+3)x-1中不含x^3和x项,求a、b的值 设x1、x2是一元二次方程x^2+4x-3=0的两个根,2x1(x2的平方+5x2-3)=_____ 3(x+1)的平方-5(x+1)=2怎么解
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn