网安学术基于ZooKeeper的一种分布式系统架构设计与实现

Posted 通信技术编辑部

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网安学术基于ZooKeeper的一种分布式系统架构设计与实现相关的知识,希望对你有一定的参考价值。



【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现


摘要:随着移动互联网的快速发展,大数据应用水平不断提高,要求分布式系统的关键业务组件必须具备更好的可扩展性、可靠性和实时性。因此,基于ZooKeeper设计了一种分布式系统架构,包括分布式服务模型和异步通信,实现了服务注册、服务监管、服务加载、通信服务等组件功能,并通过具体项目进行了测试验证。结果表明,该系统架构能够适应业务的发展需求,具有较好的可扩展性、可靠性和实时性


【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

正文内容:

随着移动互联网的快速发展,大数据应用水平不断提高,较好的系统可扩展性、可靠性和实时性已成为企业级应用的核心需求。设计一个具备较好可扩展性、可靠性和实时性的分布式系统架构,已成为通信服务系统设计的关键[1]。

首先,分布式系统需要与集中式系统完全不同的系统架构。因为网络会损失信息,所以需要软件进行恢复。当网络出现过载时,也必须容错恢复[2]。数据由于共享存在安全隐患,容易造成对保密数据的访问。

其次,数据一致性[3]。实际应用中,常常会遇到如下问题:当数据服务器过载时,需要通过分裂数据到不同的服务器上,从而将服务迁移到不同的服务器上,而多机分裂的难点在于如何使得多机在同一个分裂点原子地分裂;数据需要迁移时,需将数据按需分发,并保证数据迁移代价最低;当多个用户同时更新某个数据时,要保证最终数据的一致性。

结合某通信服务商的位置服务(LBS)系统的业务情况,针对位置定位的业务场景,设计了一种基于ZooKeeper的分布式系统架构。该架构通过分布式服务模型[4],实现了业务的发展需求,具有较好的可扩展性、可靠性和实时性。


1 系统设计

1.1 分布式服务模型

ZooKeeper[5]是一个开源的分布式应用程序协调服务。分布式服务模型如图1所示。

【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

该分布式服务模型可实现以下特性[6]:

①顺序性,包括偏序和全局有序。

②一致性[7]。客户端可连接到任意服务器,被认为是同一个视图。

③可靠性。一条消息被任意服务器接受,也会被所有服务器接受[8]。

④无关性[9]。客户端能够有效等待。失效的客户端和慢的客户端不会影响快速的客户端请求。

⑤原子性[10]。当更新时,包括成功和失败状态。

⑥实时性。可定时获得服务器的信息。

1.2 异步通信

ACE自适配通信环境(Adaptive Communication Environment)是一种面向对象(OO)的工具包[11]。该框架实现前摄模式(Proactor)等架构型模式[11],具有较好的性能和适应性。前摄模式(Proactor)具有较好的系统可伸缩性,如图2所示。通过异步I/O,充分利用CPU、网络接口和操作系统提供的并发处理机制,可极大提高通信效率。

【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

前摄模式[11]包含如下角色:

①Handle句柄,用来标识socket连接或是打开文件;

②Asynchronous Operation Processor异步操作处理器,负责执行异步操作,一般由操作系统内核实现;

③Asynchronous Operation:异步操作;

④Completion Event Queue:完成事件队列,异步操作完成的结果放到队列中等待后续使用;

⑤Proactor:主动器,为应用程序进程提供事件循环,从完成事件队列中取出异步操作的结果,分发调用相应的后续处理逻辑[12];

⑥Completion Handler:完成事件接口,一般是由回调函数组成的接口;

⑦Concrete Completion Handler:完成事件处理逻辑,实现接口定义特定的应用处理逻辑[13]。

1.3 系统架构

服务进程视图[14]如图3所示。

【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

图3描述了客户端服务请求步骤[15],具体如下:

①计算节点需要在分布式服务模型进行注册;

④客户端随机选择一个节点,并发起连接请求;

⑤建立连接;

⑥发送请求后,客户端需要进入队列排队并等待服务;

⑦获取请求参数,空闲服务从队列进行计算;

⑧将计算结果返回通信进程;

⑨客户端得到通信进程返回值。

系统架构的核心是分布式服务模型,分布式服务模型需要与协调服务建立连接[16]。协调服务具有极高的稳定性,部署的节点越多,可靠性越高。

分布式计算节点包括注册服务、服务加载、服务管理、通信服务四种类型的组件。外部请求调用时,可以指明服务名和请求参数,通过动态链接库方式进行调用。

1.4 系统部署

服务器操作系统采用Red Hat Enterprise Linux 7.3,选用7台服务器。系统部署架构如图4所示。部署了7个节点,在节点7上部署了服务注册、服务监管、服务加载和通信服务等组件。

【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现


2 具体实现

分布式系统架构实现了一种服务注册与感知机制,还实现了服务注册、服务监管、服务加载和通信服务等四个重要组件[17]。

2.1 服务注册

每个服务需要注册服务的套接字、服务种类等。

2.2 服务监管

对进程监控发现意外退出时,重新创建一个新的进程继续运行,实现较高的可靠性。

2.3 服务加载

依据通用的跨平台通信协议,服务加载可以采用任何语言开发。通过标准业务服务接口,业务逻辑代码只需实现接口便可被服务加载,通过这种方式实现较好的扩展性[18]。

2.4 通信服务

通过短连接[19]分装每对请求和应答报文,一旦通信完毕,则连接关闭。这种方式适合大规模的分布式环境,高效快速。


3 应用案例

经过测试验证,将分布式系统架构在某通信服务商的位置服务(LBS)系统中进行试点应用,并对性能进行了测试验证。选择Zookeeper服务器测试环境[20]如下:Zookeeper 3.4.5版本(软件配置);拷贝主机的CPU配置,内存8 GB,硬盘20 GB(虚拟机配置);戴尔PRECISION T7600工作站:CPU Inter Xeon-E5-2643 3.3 Hz,内存32 GB,硬盘500 GB(硬件配置)。

如表1所示,在测试环境中,选择800并发数执行“查找位置”操作,事务平均响应时间为0.94 s,事务成功率为100%。在测试脚本中参数化1 000个区段,总计50 000用户数,平均每个区段约为50户,按照“用户”进行计算的平均系统吞吐量为12 400,最大吞吐量为13 600,可以满足500万用户的位置计算需求。

【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

经过实际场景测试,系统架构[21]在功能质量属性上有良好表现。集群管理服务实现了对动态增删节点的实时响应,扩展过程对系统访问者透明,使得系统可以按需进行扩展。

分布式系统架构[22]在非功能质量属性上也有良好的表现。在大数据集群管理时,可以动态进行节点操作,包括增加、删除和编辑等。当节点出现意外如宕机时,通信管理服务可实时隔离和告警[23],实现了较好的扩展性。


4 结 语

在某通信服务商的位置服务(LBS)系统运用中,“定位朋友”“查找位置”等典型业务,要求在大数据量下高并发用户下运行,需要通信服务平台具有较好的可扩展性、可靠性和实时性。通过构建ZooKeeper分布式系统架构[24],在实际应用中较好地解决了上述问题。下一步需要优化系统架构,完善业务场景,进一步改进系统的可扩展性、可靠性和实时性。


参考文献:

[1] Hassas Y S,Ganjali Y.Kandoo:A Framework for Efficient and Scalable Offloading of Control Applications[C].Proceedings of the First Workshop on Hot Topics in Software Defined Networks ACM,2012:19-24..

[2] Lin P,Bi J,Hu H.ASIC:An Architecture for Scalable  Intra-domain Control in Open Flow[C].Proceedings  of the 7th International Conference on Future  Internet Technologies,2012:21-26.

[3] Koponen T,Casado M,Gude N,et al.Onix:A Distributed Control Platform for Large-scale Production  Networks[C].9th USENIX Symposium on Operating  Systems Design and Implementation,2010:351-364.

[4] Hassas Y S,Ganjali Y.Kandoo:A Framework for Efficient and Scalable Offloading of Control Applications[C].Proceedings of the First Workshop on Hot Topics in Software Defined Networks ACM,2012:19-24.

[5] Apache Zookeeper[EB/OL].[2017-08-12].https://zookeeper.apache.org/.

[6] Apache Hadoop[EB/OL].[2017-08-12].http://hadoop.apache.org/.

[7] 张旭刚,李东辉,俞俊等.基于Zookeeper框架实现mysql分布式数据库集群[J].微型电脑应用,2016(01):77-80.

[8] 顾乾斌,潘善亮.基于Zookeeper的国土资源档案分布式查询框架设计与实现[J].移动通信,2017(05):84-90.

[9] 庄鹏.基于ZooKeeper的分布式服务中间件设计与实现[D].深圳:深圳大学,2016.

[10]李璋.基于Hadoop的互联网数据营销系统的设计与实现[D].北京:中国科学院大学,2017.

[11]谭智.基于大数据技术的网络异常行为检测系统设计与实现[D].南昌:江西财经大学,2016.

[12]李锐,刘刚,尹书伟等.基于ZooKeeper和ACE的分布式计算框架研究与设计[J].电力信息与通信技术,2015(06):31-35.

[13]苟丽美,张锋叶,林国华.基于Zookeeper的GIS集群实现[J].计算机工程与设计,2017(09):2573-2579.

[14]王文峰,袁庆祝,陆佃龙.基于Zookeeper综合任务调度平台的设计与应用[J].信息技术,2016(06):181-184.

[15]王均贤.基于Hadoop的新闻推荐系统关键技术的研究[D].天津:天津理工大学,2017.

[16]易柏胜.基于Zookeeper的虚拟机动态变更机制的设计与实现[D].广州:华南理工大学,2013.

[17]谭玉靖.基于ZooKeeper的分布式处理框架的研究与实现[D].北京:北京邮电大学,2014.

[18]何慧虹,王勇,史亮.分布式环境下基于ZooKeeper服务的数据同步研究[J].信息网络安全,2015(09):227-230.

[19]田心宁.基于Zookeeper的SDN多控制器架构的研究与实现[D].兰州:兰州大学,2016.

[20]赵玉京.基于Zookeeper的分布式范围锁的设计与实现[D].武汉:华中科技大学,2015.

[21]杜妍妍.基于Hadoop的电信经营数据分析系统的设计与实现[D].天津:天津大学,2016.

[22]胡雪婧.基于ZooKeeper的分布式系统的消息发送机制的设计与实现[D].长春:吉林大学,2016.

[23]刘芬,王芳,田昊.基于Zookeeper的分布式锁服务及性能优化[J].计算机研究与发展,2014(S1):229-234.

[24]黄毅斐.基于ZooKeeper的分布式同步框架设计与实现[D].杭州:浙江大学,2012.


【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

单位:1.电子科技大学,四川 成都 610101;

2.四川城市职业学院,四川 成都 610110;

3.广州大学,广东 广州 510006

作者简介:陈天伟,男,硕士,副教授,主要研究方向为移动互联网及大数据应用;

彭凌西,男,博士,教授,主要研究方向为网络安全及智能计算。

本文刊登在《通信技术》2018年第1期(转载请注明出处,否则禁止转载)











































































































































































































【网安学术】基于ZooKeeper的一种分布式系统架构设计与实现

中国通信事业的奠基者

学界务实求真的思想者

科技创新强国的开拓者

投稿网址: www.txjszz.com 

(028)85169918/

(028)69907566 































































































































以上是关于网安学术基于ZooKeeper的一种分布式系统架构设计与实现的主要内容,如果未能解决你的问题,请参考以下文章

网安学术基于Simhash算法的Webshell检测方法

Zookeeper ZAB 协议分析

Zookeeper ZAB 协议分析

Zookeeper ZAB 协议分析

zookeeper原子消息广播协议--ZAB

ZooKeeper ZAB协议:崩溃恢复消息广播