消息中间件的集群技术


消息中间件()是一类特Message Oriented Middleware 定的中间件,它利用高效可靠的消息传递机制进行平台无关 的数据交流,并基于数据通信来进行分布式系统的集成。通 过提供消息传递和消息排队模型,它可在分布环境下扩展进 程间的通信,并支持多通信协议、语言、应用程序、硬件和 软件平台。目前流行的中间件产品有的MOMIBM 、的等。MQSeriesBEAMessageQ 若干个松耦合的节点构成的集合就是集群。集群把单个 消息中间件扩展到消息中间件的环境,构成的消息中间件集 群可以为客户提供分布式的消息服务。 集群中的每个节点都是一个单独的服务器,运行自己的 服务。节点之间可以相互通信,而在客户看来,它好像只是 在与一个单独的系统交互。 集群提供了单个服务器无法提供的优点:缩短系统(1) 由于单个服务器失效而导致的停工时间;保证消息服务(2) 器的可用性;庞大的客户数量;通过负载平衡提高系(3) (4) 统的效率。 集群的实现1 集群由配置管理来创建,在集群里,有一个以上的服务 器实例在运行,并这些实例可以运行在相同的主机,或是分 布在网络上。集群的实现方式采用主从方式。这种集群方/ 式易于理解。主和从都是相对消息而言的。所谓主是"""""" 指某个服务器是某几类消息发布用的服务器;从是指该服"" 务器对某几类消息起着路由转发的作用,服务器本身也作为 这些消息的消费者。 我们通过发布订阅方式解决集群的一个重要问题:发/ 现和查询,即如何查找集群的其它节点并从它们访问更深的 节点信息,以及如何保持这些信息是最新的。服务器节点在 消息中存储它们的集群信息,该信息用来描述,其他XML 节点可以订阅这个数据。如果需要的话,一个服务器可以作 为命名服务运行,维护所有可用服务器实例的信息。"" 在后面的部分,服务器实例,服务器节点或节点这几个 术语可以互换。 集群涉及到的问题1.1 可扩展性(1) 一个主服务器实例可以有多个从服务器实例,形成多个 特定的消息域。这些从服务器还可以有自己的从服务器。这 样可以把消息分发给数量近乎无限的客户。服务器节点可以 是某些消息的主服务器,同时又是另一些消息的从服务器。 图可扩展性:集群可以根据客户的数量无限扩展1 "" 我们用层来表示从节点到主节点的距离。这种做法类"" 似网络时间协议()。层表示主节点本身,层是第一NTP01 层从节点到主节点的距离。图中到的距离为层。1S4S12 可用性(失效恢复)(2) 如果主服务器发生故障,从服务器可以转变到主服务器 的角色。 有种不同的故障情况需要考虑:3 主节点故障:譬如图中的发生故障,可能会选择成为1) 1S1S3 新的主节点。 从节点故障:一个从节点发生故障,它的从节点需要重新安2) 排自己。譬如,图中,如果发生了故障,需要知道当前集群1S3S4 的情况,然后选择一个低负载的或层数少的节点重新连接。 客户重连:客户失去了与一个服务器实例的连接,需要重新3) 寻找另一个服务器进行连接。 作者简介:张舒怡(~),男,硕士生,研究方向:计算机网1977 络;严超、朱玉,硕士生;邵培南,研究员 收稿日期:2002-08-07 消息中间件的集群技术 张舒怡,严超,朱玉,邵培南 (华东计算技术研究所,上海) 200233 摘要: 消息中间件是一类为应用程序提供通信服务的中间件。该文论述了在消息中间件的实现中如何采用集群技术,分析了实现集群技术 需要解决的问题,提出这些问题的解决方案,并且给出了描述。XML 关键词:消息中间件;集群;可扩展标记语言 Using Cluster in Message Oriented Middleware ,,,ZHANG ShuyiYAN ChaoZHU YuSHAO Peinan (East China Institute of Computer Technology, Shanghai 200233) 【】Abstract Message oriented middleware (MOM) products provides an assured, asyncronous and connectionless method to exchange messages between processes. This paper discusses the cluster using in the implemention of MOM. It analyzes the problems need to be resolved, and how to resolve them. It also uses XML to describe the solution. 【】Key words ;;Message oriented middlewareClusterXML 第卷 第期292 №Vol.29 2 计 算 机 工 程 Computer Engineering 年月20032 February 2003 ·软件技术与数据库· 中图分类号: TP393.07 文章编号:———10003428(2003)02 010702 文献标识码:A ——107 客户 S1 模式:主 I 客户 S2 模式:从 S3 模式:从 发布客户 客户 S4 模式:从 客户 XML-RPC 客户 基于消息域的逻辑分类(3) 一个服务器实例可以是某些消息的主节点譬如,证券( 交易消息,同时又是其他消息譬如,空中交通控制或体育)( 新闻的从节点,我们把根据消息形成的主从关系称之为集)/ 群消息域。客户则不需要知道哪个服务器是主服务器,只需 连接到集群中的一个服务器实例,就可以获得所有信息。 负载平衡(4) 集群允许一个特定消息域有一个以上的主节点。所有主 节点是这些消息的映像节点。发布的消息可以到达所有的主 节点。订阅的消息通过某种负载平衡算法获得。 实现概述1.2 实现种逻辑映射功能:1.2.1 3 查询消息的主节点(1) 要把消息映射到某个主节点。理论上来说可以根据消息 的任何信息做出映射。我们采用比较简单的基于元素KEY 属性的方法:在标签里使用一个属性,譬domain 如: 证券交易 基于的方法把域名映射到集群节点。见表。domainID1 从可用的主节点列表中选择一个(负载平衡)(2) 如果在中找到一个以上的主节点,就需要通过负载(1) 平衡算法从中选择一个。我们使用循环法作为负载平衡逻 辑。这需要知道某个集群节点当前的负载情况。表给出了1 节点与它的负载描述。 把节点映射到真正的服务器实例(3) ID 确定节点后,就需要知道如何到达实际的服务器。我们 通过它的集群得到通信要使用的、IDCORBA IORXmlRpc 、注册项或是。表给出了这种映射。URLRMISocket1 实现集群的特性1.2.2 多个服务器实例(1) 如果多个服务器实例在运行,每个消息只分配一个主服 务器(如果没有负载平衡)。不同的服务器像客户一样互相 登录到对方,对不以它们为主节点的消息,它们的作用就是 从节点。 服务器实例之间的连接(2) 服务器之间的登录采用模式。客户第一次请求不"lazy" 是以本地服务器为主节点的消息时,服务器才登录到主节 点,订阅该消息。以后,这类消息就缓存在本地,随后的客 户请求就可以在本地被处理。因为从节点向主节点订阅了该 消息,缓存会不断更新。可以调整消息的过期时间来清除缓 存的消息。 对发布的消息进行路由(3) 如果消息从数据源发布到从节点,消息直接被路由到主 节点(也可以是从节点,该再把消息转发到层为的真正的0 主节点)。如果主节点目前不可用,该消息进入队列等待, 直至主节点登录。 查询主节点的接口(4) 提供接口,使得能够定义不同的逻辑,来标识集群主节 点的。缺省实现用元素的属性进行映射。idKEYdomain 负载平衡逻辑的接口(5) 提供负载平衡逻辑的接口。通过接口可以添加新的负载 平衡逻辑。缺省使用循环法。 缺省的主节点(6) 服务器节点是它直接相连的客户缺省的主节点。如果客 户发布订阅,没有为消息说明域,消息就在本地服务器处/ 理(就好像没有集群存在)。如果服务器配置的元素 的属性设置为,服务器就搜索MASTERacceptDefault "false" 另一个接收缺省消息的节点。如果节点配置的元素 的属性设置为,它就可以MASTERacceptOtherDefault "true" 接收来自其他节点的缺省域的消息。 未知主服务器(7) 如果节点收到消息但找不到主服务器,消息进入队列, 等待主节点。如果稍后主服务器出现,消息就被发送出去。 客户转交(8) 如果一个节点停止工作,它能够通知它的客户并且把转 交节点的地址传递给它们。 消息(9) PtP 为了允许全局传递,我们引入一个唯一命名方案,基于 命名语法,可以寻址任意节点上的任意客户。但是集群URL 只用于发布订阅消息,消息仅使用集群的节点作为跳来/PtP 找到最后的目标。 相同域的多个主节点(10) 如果一个域有多个节点处于主节点模式,有两种方式处 理发布的消息:把消息发布给所有的主服务器;用负载平衡 算法处理或访问的消息,缺省实现是循环算get()subscribe() 法。 节点之间的连接状态(11) 服务器节点之间的连接状态分为种状态:3 已登录:连接可用;1) 轮询:有其他节点的地址,并且正在轮询这个节点;2) 不允许:知道某个节点,但是不允许使用这个节点。3) 结束语2 消息中间件是为异构的分布式环境下的应用程序提供可 靠的数据通信服务的,它本身也可以采用分布式的架构。因 此,通过集群来管理消息中间件是必然的发展趋势。实现集 下转第页 (200) ——108 项目 描述XML KEY 解释 服务 器配 置的 内容 这个集群节点是 消息域足球和""" 棒球的主节点。" 当消息的域为足" 球或是棒球" "" 时,服务器会把 域映射到服务器 的集群:ID cluster.node. master[S1] 服务 器状 态 < PERFORMANCE bogomips=' 1205.86' idleIndex='20'/> < cluster.node. state/> 服务 器实 例
IOR:00044550005...
http://host/RPC2
cluster.node. master[S1]" >< cluster.node. info/>
表基于消息域的映射1 案例库检索冲突,由冲突消解器实时地分析排除冲突,实现 网络攻击行为判别的确定性和唯一性。可以考虑的方法有: 最先匹配原则,发生冲突时,选用最先匹配的案例。(1)"" 优先级顺序,初始化案例和扩充案例时根据一定依据对其(2)"" 进行优先级确定。冲突发生时,对所有满足条件的案例,选用优先 级最高的。 优先级原则和最先匹配相结合的方法,如果采用优先级(3)"""" 得到的案例不唯一,那么就在优先级最高的案例中选择最先匹配的 案例。 案例匹配算法描述4.1.2 本地案例库中每一案例for(L-BoC){ 计算该案例和网络事件的匹配度Md; if(Md_max= Ll && Md_result >=1){ if(Md_result>1){ 将中所有案例送入冲突消解器消除冲突;Md_result .... } 接收冲突消解器返回的唯一匹配的案例; 将该案例的各个网络事件统计参数刷新; 计算该案例的各个网络事件统计参数的加权和;P 网络攻击特性阈值if(P>=Pv){ 抽取该网络事件的主要特征形成新规则 写入全局规则库 G-BoR; 删除本地案例库中相应的旧案例; L-BoC} 根据对本地案例库进行重排序; else{PL-BoC} 匹配成功; return() } 匹配失败;进入状态推理分析模块;else {return() } 注释::: PvPeculiarity valve; LlLower limit 状态推理模块4.2 状态转换分析最先是由R.Kemmerer[5]提出,即将状态转 换图应用于入侵行为的分析。状态转换法将入侵过程看作一 个行为序列,这个行为序列导致系统从初始状态转入下一个 状态,并最终转入入侵状态。分析时首先针对每一种入侵方 法确定系统的初始状态和被入侵状态,以及导致状态转换的 条件,即导致系统进入被入侵状态必须执行的操作。该模块 状态推理机针对典型网络攻击,根据其原理分析得到整个攻 击行为的状态推理图。根据事件生成器提供的网络事件信息 由初始状态进行有限状态推理,最终判断其行为性质。如果 确定攻击,则向本地案例库写入当前网络攻击事件的特征信 息所构成的新案例,同时通知报警平台。 例如攻击,其原理结合使用了欺骗SmurfIP [6]和回ICMP 复方法使大量网络传输充斥目标系统,引起目标系统拒绝为 正常系统进行服务。攻击者向一个具有大量主机并且和 连接的网络的广播地址发送一个欺骗性分组InternetPing 请求,而欺骗性分组的源地址就是攻击者希望攻(echo )Ping 击的系统。这样,网段中的所有主机都会向欺骗性分组的IP 源地址所对应的目标系统发送响应信息,很快目标系统echo 都就会被大量的信息吞没,这样轻而易举地就能够阻止echo 该系统处理其它任何网络传输,从而引起拒绝为正常系统服 务。根据以上的原理分析,可以得到:分析包头信(1)IP 息,查看其中协议项。如果协议采用,由初始状态进ICMP 入状态;取出包头中目的地址,如果它是某一网络S1(2)IPIP 的广播地址,则可推断有可能发生攻击转入状态;Smurf,S2 分析包头中源地址,如果它是本地网络地址,则可以(3)IPIP 推断有可能发生针对本地网络的攻击,转入状态;SmurfS3 进一步从包中分解出信息,即取出包的资料部(4)IPICMPIP 分,分析报头中类型项,如果类型值为,即表明该ICMP8 报文为回送请求报文,可确定发生了针对本地网络的ICMP 攻击,状态转入,如图所示。SmurfS45 图攻击状态转换图5 Smurf 结束语5 该系统独立于硬件设备,适用于安全性能要求较高的中 小型局域网。经过大量实际网络测试,其误报率低,实时性 和健壮性均较强,并且随着案例库和规则库的自扩充,该系 统对网络入侵的检测会有更好的完备性和可靠性。 参考文献 北京机械1 Christopher Y M.IP Svitching Protocols and Architectures.: 工业出版社,1999 2 BarFord P,Crovella M.Critical Path Analysis of TCP Transactions. IEEE/ACM Transactions on Networking,2001,9(3):238-248 李春波文毅白作霖等自适应系统开发方法的研究计算机工3 , ,.. 程, 1998,24(4):60-62 李克清陈莘萌张苓等一种基于策略服务的模型计算机工程与4 ,, .. 应用,2000,(9):137-139 -5 Porras P,Kemmerer R.Penetration State Transition AnalysisA Rule- based Intrusion Detection Approach.In Proceedings of the Eight Annual Computer Security Applications Conference,1992,(11):220-229 第三版北京电子工业6 Douglas E C.Internetworking with TCP/IP[].: 出版社,1998 上接第页(108) 群技术,系统能够提供更为可靠、更为灵活的服务。集群不 可能单纯在程序中实现,它与配置管理密不可分,因此本文 着重于对集群进行描述。描述使用可扩展性强的语XML 言,因为这样可以简化代码实现。 参考文献 1 Java Message Service Specification (Version 1.1). http://java.sun.com/ products/jms/,2002-08 2 Extensible Markup Laguage(XML) 1.0(Second Edition). http:// www. w3.org/TR/REC-xml,2000-10 3 Rousselle P.Using Agent Technology to Build Flexible Systems. http://www.ddj.com/documents/s=921/ddj9804i/,1998-08 ——200 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

108439162

贡献于2012-02-22

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf