分布式事件总线-问题域

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值