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

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

先睹为快:Unity亚洲开发者大会虚拟游览展示 OSTC·2014 演讲日程出炉,Perl创始人来了! Unity将收购Applifier,并引入Everyplay和GameAds两大平台 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业 九头蛇与大象之争,Hydra或将取代Hadoop 喜讯:中国安全团队Keen成功在Pwn2Own 2014黑客大赛上攻破64位Mac上的Safari OCP黑客马拉松冠军:24小时头脑风暴背后 新时代应用程序设计及MongoDB的十个深入理解 借助“开源”东风 英特尔打造卓越“软实力” 深圳综合交通设计研究院张鹍鹏:智能交通设备领域已成红海 信息化是发展趋势 25个可遇不可求的jQuery插件 Web设计中对视差设计的误区 直接拿来用,九个超实用的PHP代码片段(二) 一周消息树:小米染指平板电脑凶多吉少 移动周报:Xcode 5.1更新、CarPlay揭秘,Apple很忙 可穿戴领域,创业公司的掘金点?还是滑铁卢? 搜狐SendCloud2014运维技术沙龙拉开帷幕 一周热点:选择Go语言的12个理由,九头蛇与大象之争 中国云计算大会PPT集萃(二):十位技术大牛分享平台打造技术 延迟250毫秒损失数百万美元,Hadoop系统该如何应对实时任务 IBM成立展示中心扩展大型主机的Linux开放生态系统 SDN解决方案总结:OpenFlow、虚拟机、OpenStack和VXLAN/NVGRE 第六届中国云计算大会将于5月20-23日在京隆重召开 大数据实战:站在JMP分析平台上的FIT足迹识别技术 首届SAP d-code大会在上海举办 【OSTC讲师专访】ZoomQuiet:因商业化而开源是中国开源界最大的囧处 亿元资金扶持+联手100家VC,腾讯的雄心壮志 美国史上最大IPO 能给阿里巴巴带来什么? 买Windows平板而非iPad或Android的十大理由 Framework7:不会Objective-C,也能开发iOS7应用 CocoaChina开发者大会 全新引擎Cocos 3d-x开源 今天不是鬼节啊?怎么这么多早就作古的人都出来了? 超级菜的问题(关于WINNT安装)想要分的快进 怎么写dll文件 怎样插入当前时间和日期到Access数据库中 下面为什么出错了? 有人愿意收一个一般菜,但又不是很菜的人为徒吗??? TADOTable如何实现记录定位?——求救! 谁知道怎么让WEBLOGIC中消息驱动BEAN的例子MESSAGE跑起来?.. 請問各位為何javabean在suse linux的調用問題 请问如何在weblogic中设置一个jms topic?. 请教关于游戏平台的问题!! 使用QuickVxD不能生成 .h ,.cpp .mak文件,那里不对? 请问:框架(Frame)为什么不能动态生成两次 ????????????? 在win2k下有人知道ActiveReports报表怎么自定义打印纸张大小 大家讨论一下运算符重载的问题!!!! 位操作问题?欢迎各位朋友讨论! data控件能连接sqlserver数据源么? 有没有办法使重复的值只显示一个,空值不显示也不要占位置?(急呀!!!) 用TURBO C2.0能不能写32位的软件? 如何设置WN98中的硬盘驱动器盘符 SOS pekie 请教啦! 投影仪投出的图像中间部分呈粉红色,是不是投影仪坏了? 在MYSQL中我想修改root密码,可是总报错说user表是read only,如何把只读的属性去掉? 关于开发网络麻将游戏需求的问题。。谢谢。 关于jsp或applet调用本地DLL的问题 在BCB中如何添加自己的类? 关于APPLET从服务器下载图片的问题! 建议下一次改版的时候考虑一下这个问题:CSDN 的很多页面好像用NetScape不能浏览? 我不用IE很多年了, 因为太容易死机 有没有做股票的朋友? 急!!!50分求购一个在程序中实现按下按钮功能的小程序,多谢了 在图象上的汉字显示问题 请问谁知道把AVI文件转换成BMP位图数据的算法 圣诞快乐 用什么工具可以从exe文件中把资源文件,如图像、图标提取出来? Word与Delphi的结合!高手请进! 贴子为什么掉到第二页上再UP就回不到第一页去了?见龟!——千山一刀 ^^^^^^^^^如何配置sybase的clinet端????^^^^^^^^^^^^^^^^^^^^ 进程与线程 在win2000系统下,构建asp+sql的web站点,但在web页中无法显示出小数点前的零? 如何配置sybase的clinet端? 关于webbrowser。 TO:riolee(随风) 关于directshow的 开始菜单中的运行找不到 请问各位谁能提供 CString 里有一个operator LPCTSTR,难道这个LPCTSTR也可以被重载,它不是操作符啊,也不在可被重载的范围中啊? 请问到何处用蚂蚁下载photoshop6.01软件 在UPDATE的时候,如何返回受影响的记录个数?[Oracle8i] 请问各位谁能提供jpeg文件格式的中文说明??????????????????? [question]tmd的,有人惹我,怎么办 Windows CE, Windows NT Embedded等嵌入式操作系统和相关开发工具在上海如何购买??? mobile web application 里的softkey到底是怎么回事呀 已知a(a-1)=a²-b-2求1/2(a²+b²)-ab 已知-ax的m次方y的n次方是一个关于x,y的单项式,它的系数是3,次数是5,求式子a²(m+n)的值! 代数式3分之x+y+z的意义是______________. 甲、乙、丙、丁四人向灾区捐款,甲的捐款数是其他三人捐款总数的三分之一,乙的捐款数是其他三人捐款总数的五分之一,丙的捐款数是其他三人捐款总数的六分之一,丁捐款148元.甲捐款多少 如果单项式x²y的m+2次方与x的n次方乘以y的和仍然是一个单项式,则m、n的值是().A、m=2,n=2 B、m=-1,n=2C、m=-2,n=2 D、m=2,n=-1 使代数式2x-3分之x-1有意义的是 小明步行45分钟可长A地到B地,小华乘车15分钟可从B地到A地.当他们相遇时,小明已经走了30分钟,小华接小明乘车返回B地,还需要多少分钟?甲、乙两人同时从A地到B地,甲一半时间跑步,一半时间走 若3xm+5次方的y的2次方与x的3次方的y的n 次方的和是单项式,则m的n次方是多少 代数式3分之x+y+z的意义是(). 2-x分之x-x²-4x+4分之4-x² 小数的意义和读写法知道的人尽快回答我 12和13题. x除以一个数,等于15,余3,x最大填几 谁能告诉我小数的意义 求第12和第13题的详细解答过程 (x²-2x)除以2x分之x-2 小数的意义是什么 在△ABC中,已知a=7,b=8,cosc=13/14,求最大角的余弦值? 23×(-5)-(-3)÷128分之3 (2分之1-2x-4分之1)除以2x²-8分之x-3 小数的意义与性质.急啊!谢谢谢谢谢谢!小数的意义:小数的性质:谢谢谢谢谢谢谢谢! 化简a²-b²/a²﹢ab 已知:a+b=1,a²+b²=2,求:a的11次方+b的11次方=?用构造法,要不然会死人的,重赏要用一个公式,目前答的都不算对,好像用的是(x-a)(x-b)的公式,要升次,不能把a,b数值求出来 小数的意义和性质是什么 化简:(√a²+a√b)/(ab-b²)-(a+√ab+b)/(a√a-b√b) (x+1分之1-x-1分之1)除以x²+x分之1 小数的意义和性质1.大于0且小于1的一位小数有【】.其中最大的是【】,最小的是【】2.某地的海水1000千克含盐3千克,1千克海水含盐多少千克?10千克海水呢? (a²-b²)/(ab)-(ab-b²)/(ab-a²)可化简为已知x²+5xy+y²=0,则(y)/(x)+(x)/(y)的值为 计算题:a+b/5ab.10ab²/a²-b² (1-1/2²)(1-1/3²)(1-1/4²)...(1-1/10²)求过程, 化简ab分之a²-b²-ab-a²分之ab-b²= 数学计算题:(a-2b)(a²-3ab+b²) 若(x+2)²-1=x²+4x+a,求a (1- a²+8/a²+4a+4)除以4a-4/a²+2a 怎么作一个角是已知角的二分之一? (2乘以x的负一次方乘以Y的负二次方)的²分之20乘以X的五次方Y的负二次方 若代数式(x+1/x+2)/(x+3/x+4)有意义,则x的取值范围是 (ab分之a²+b²)+【2-(ab分之a²-b²)】 除以一个非零有理数等于? (1-10分之1)×(1-11分之1)×(1-12分之1)×····×(1-100分之1)快,thank 若b分之a=2,则(a²+b²)分之(a²-ab+b²)的值为若a分之1-b分之1=a+b分之1,则a分之b-b分之a-3的值是 有理数除以非零整数结果是有理数吗例如 对于等差数列 如果有两项是有理数 那么其他项全部都是有理数 是真命题还是假命题? 10*11份1+11*12份1+……59*60份1简算 ab分之(a-b)²-ab分之a²-b² 计算题 (1)-x²·﹙-x﹚² (2)﹙x-2﹚﹙x+3﹚1.计算题 (1)-x²·﹙-x﹚² (2)﹙x-2﹚﹙x+3﹚ (3)﹙a-2b+3c﹚﹙a+2b-3c﹚ ﹙4﹚﹙a+1/2﹚²·﹙a²+1/4﹚²·﹙a-1/2﹚²2 若代数式 x+2/x-1除以x/x-1有意义,则x的取值范围是什么? ab-b²分之a+b÷[-(a-b)²分之ab+b²] 计算题:4(X-1)²-9 X²(a-1)+4(1-a)X(X+Y)(X+Y)-X(X+Y)²其中X+Y=1,XY=二分之一(1-2²分之1)X(1-3²分之1)x.......X(1-9²分之1)X(1-10²分之1) 代数式x+2分之x-1除以x分之x-1有意义,则x的取值范围是?急如题 如果b分之a=2求a²+b²分之a²-ab+b²的值 f(x)=e的x次方乘以(3-x²),x∈[2,5]求函数的最值 2又5分之4*0.6-2又4分之1除以1又3分之2+0.55*1又5分之1 18/49、41/111、47/129、51/139 四个分数比大小.过程在哪里.顺便:1110/2221和3332/6665 谁知道小数的意义和性质,和一些关于小数的简介,小数的简介,:例:什么是小数?小数的使用. x 取( ),代数式x+3/x-3 除以 x+2 /x-4有意义 比较分数17/49,41/111,47/129,139/51. 化简:(-√11)²;±√1-(12/13)²;±√(-6)²;√13²-5² [170+1 /12] ×1 /13+11 /12 18/49,41/111,47/1291/139 若三乘以x的(m+5)次方乘以y的2次方与x的3次方乘以y的n次方之和是单项式,则m的n次方是? 有正方形A,B,C,A的面积是B的4分之3,B的面积是C的8分之7,那么ABC的面积比是多少?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn