分布式事件总线-概述

事件是在一定条件下发生的动作或者操作,而且需要让事件订阅者知晓该事件已经发生。
事件有2个非常重要的概念:事件发布者,事件订阅者。
事件包含如下要素:事件ID:必须全局唯一,可以通过它的前缀进行过滤,字符串,建议采用Java的点分方式。
                    事件发生时间:取UTC时间
                    事件源:发生事件的源,是Object对象
事件总线的用例:发布事件,订阅/去订阅事件,满足分发性能规格,支持容错处理.
事件总线的好处是很多的: 如异步,模块解耦等
一般大型系统才会用事件总线,甚至一个公司所有的项目公用一个事件总线。
大型系统都会划分成很多模块(或项目)。每个模块对性能的消耗可能不一样,有的模块很耗性能。甚至CPU,IO的要求都是不一样的。为了提供系统的性能,按模块进行分布式部署是个很好的选择,对不同的模块的性能要求配置不同的服务器,也可充分利用硬件资源,提高整体性能.提高整个系统伸缩性,所以事件总线必须要支持分布式部署情况。


因为事件总线对整个系统的重要性,一旦事件总线慢或者不可用,系统的大部分功能就变成不可用。
所以事件总线对可靠性和性能都是要求非常高的。

分布式事件总线的特殊的地方:
事件发布者 和 事件订阅者是位于不同服务器上的。
一种事件 可以有很多订阅者,这些订阅者可能在不同的服务器上
任何服务器都可以充当事件发布者和事件订阅者角色

猜你喜欢

转载自xiaoyuwei.iteye.com/blog/1130769