首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

分布式事件总线-有关问题域

2012-09-09 
分布式事件总线-问题域分布式事件总线首先要解决如下几个问题:1.如何发送事件对象给远程订阅者服务器..2.

分布式事件总线-问题域

分布式事件总线首先要解决如下几个问题:
1.如何发送事件对象给远程订阅者服务器..
2.需要知道向哪些服务器发布事件,而不是所有服务器都发布,因为有些服务器没有订阅这种事件
3.服务器接受到一种事件时,要知道该种事件在本服务器内有哪些监听对象在监听,从而好调用
4.系统运行过程中,新增监听和去除监听一个事件时,如何通知发布者来同步本地的信息
5.监听者在处理事件时时间很长怎么办
6.某台订阅服务器不可用怎么办
7.如何监控事件总线的效率?
答:
1.每台服务器 都起一个事件接受服务,以接受发送者 发过来的事件。事件发送者在发送事件时,调用该远程服务来发送事件。
2.每台服务器都维护每个事件类型对应远程事件接受服务的关系记录。 发起事件时查询该对应关系就能找到有哪些远程机器在订阅该类型事件了。
3.应用在订阅一个事件时,会将该事件对应监听对象保存在自己机器的缓存中。当事件接受服务接受到了远程(或本地)的事件时,再查询对应关系
? 将事件对象作为参数传给其监听对象即可.
4.部署一个master服务器,由master维护事件与监听对象的关系的最新版本, 当新增/去除监听时,调用master的更新服务。master更新完后,向所有注册的Node节点发送
? 更新事件,所有Node都监听此类事件,收到事件后立马和服务器最新版本对比,使自己的缓存列表和master同步
5.事件接受到事件后,将事件统一放到阻塞队列中,对每个监听者,都对应一个线程来处理,这样即使一个监听者有问题,也不会影响到其他监听者接受事件
6.可以采取重试3次,一般都会由master节点将其节点所有服务解除掉

热点排行