基于MQ的事件处理框架
1、事件定义()
<EventDef name=”addDabmzd ”status=”active”
Type=”custom” topic=”HighLevelTopic”>
事件产生方式有两种:
拦截服务方法发生前后、异常发生后,框架调用事件平台api产生事件
业务编码调用事件平台api产生事件
2、消费者注册(注册订阅关系)
<EventConsumer id=”c1” name=””>
<Service name="Service2" onEvent=””/>
<Service name="Service3" onEvent=””/>
<Events>
<Event name="Topic1/Event1" topic=”HighLevelTopic”/>
</Events>
</EventConsumer>
每台机器向MQ注册订阅关系,MQ最终注册信息:
c1:topic1/tag(event1),c2:topic2/tag(event2)
管理控制台增加一个订阅关系 sevice2-》topic3/event3,
订阅信息广播给所有consumer,每个consumer会检查是否有service2
(系统中每个consumer默认会订阅一个系统级topic,用于群发消息)
3、事件发送到Mq消息队列,保证消息处理性能和可靠性,消息不丢失
4、事件接收处理(订阅相关主题的事件消息)