本发明涉及移动互联网、数据处理,更具体的说是涉及一种分布式事件异步处理系统。
背景技术:
1、目前,随着企业系统的复杂性日益增加,对数据集成和系统整合的需求也相应提高。尽管corba、dcom、rmi等rpc中间件技术应运而生,但由于采用rpc同步处理技术,这意味着发送者在向接收者发送消息后,必须等待接收者的响应。如果接收者处理速度较慢或者接收者发生故障,发送者可能会长时间地被阻塞,从而导致系统性能下降、健壮性降低和可扩展性限制。
2、系统集成的困难:尽管rpc技术可以实现不同系统之间的通信,但它们通常需要大量的配置和编程工作,这使得系统集成变得复杂和耗时。
3、并发处理的问题:在rpc同步处理模型中,通常很难有效地处理并发请求,因为发送者在等待接收者响应期间不能进行其他操作。
4、消息传递的限制:在同步处理模型中,消息只能直接从发送者传递给接收者。这种一对一的通信方式限制了消息的传播范围,而且无法实现发送者向多个接收者同时发送消息。
5、因此,如何提高系统的性能、健壮性和可扩展性,简化系统集成,处理并发请求,以及提高消息传递的效率和灵活性;是本领域技术人员亟需解决的问题。
技术实现思路
1、有鉴于此,本发明提供了一种分布式事件异步处理系统,可解决企业系统性能、健壮性、可扩展性限制问题;以及可解决系统集成困难、难以并发处理和消息传递限制的问题。
2、为了实现上述目的,本发明采用如下技术方案:
3、一种分布式事件异步处理系统,包括:
4、启停控制模块,用于控制系统的自动启停,以及用于所有模块的依赖注入;
5、生产者模块,用于负责系统的事件生产;
6、消费者模块,用于负责系统的事件消费;
7、调度中心模块,用于负责整个消费集群的注册发现,以及各个消费节点的消费事件分配;
8、监控模块,用于负责整个系统的监控和异常告警。
9、在一个实施例中,所述启停控制模块,其配置为通过spring提供的smartlifecycle机制扫描系统内所有的事件生产者和消费者信息,并将生产者和对应的消费者一一绑定后,向消费者模块注册,以及启动调度中心模块、监控模块和消费者模块。
10、在一个实施例中,所述消费者模块,具体用于为初始化所有事件队列信息,并创建一条主线程以轮询检查所有事件队列状态,以及创建一个线程池负责消费已就绪事件队列。
11、在一个实施例中,所述消费者模块,配置为支持同步消费和异步消费;其中,异步消费支持按事件id分片,同分片下顺序消费,不同分片并发消费;同分片下,同id严格的顺序消费。
12、在一个实施例中,所述消费者模块,还配置为支持单点消费和集群的多节点消费。
13、在一个实施例中,所述调度中心模块,具体配置为向redis发送心跳,注册当前消费节点信息,同时获取到分布式环境下其他消费节点信息,并通过一致性hash算法,获取当前消费节点负责消费的事件队列。
14、在一个实施例中,所述调度中心模块,还配置为将负责的事件队列状态修改为就绪状态,通知消费者模块开始消费,未分配的事件队列状态修改为待停止状态,通知消费者模块停止对其的消费行为。
15、在一个实施例中,所述监控模块,具体配置为周期性地检查所有事件队列中待消费的事件数量,高于阈值时,则发出告警。
16、经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种分布式事件异步处理系统,包括:启停控制模块,用于控制系统的自动启停,以及用于所有模块的依赖注入;生产者模块,用于负责系统的事件生产;消费者模块,用于负责系统的事件消费;调度中心模块,用于负责整个消费集群的注册发现,以及各个消费节点的消费事件分配;监控模块,用于负责整个系统的监控和异常告警。该分布式事件异步处理系统,具有性能高、可扩展、健壮性强、易于集成和使用、服务可用性高等优势。
1.一种分布式事件异步处理系统,其特征在于,包括:
2.根据权利要求1所述的一种分布式事件异步处理系统,其特征在于,所述启停控制模块,其配置为通过spring提供的smartlifecycle机制扫描系统内所有的事件生产者和消费者信息,并将生产者和对应的消费者一一绑定后,向消费者模块注册,以及启动调度中心模块、监控模块和消费者模块。
3.根据权利要求1所述的一种分布式事件异步处理系统,其特征在于,所述消费者模块,具体用于为初始化所有事件队列信息,并创建一条主线程以轮询检查所有事件队列状态,以及创建一个线程池负责消费已就绪事件队列。
4.根据权利要求2所述的一种分布式事件异步处理系统,其特征在于,所述消费者模块,配置为支持同步消费和异步消费;其中,异步消费支持按事件id分片,同分片下顺序消费,不同分片并发消费;同分片下,同id严格的顺序消费。
5.根据权利要求4所述的一种分布式事件异步处理系统,其特征在于,所述消费者模块,还配置为支持单点消费和集群的多节点消费。
6.根据权利要求5所述的一种分布式事件异步处理系统,其特征在于,所述调度中心模块,具体配置为向redis发送心跳,注册当前消费节点信息,同时获取到分布式环境下其他消费节点信息,并通过一致性hash算法,获取当前消费节点负责消费的事件队列。
7.根据权利要求6所述的一种分布式事件异步处理系统,其特征在于,所述调度中心模块,还配置为将负责的事件队列状态修改为就绪状态,通知消费者模块开始消费,未分配的事件队列状态修改为待停止状态,通知消费者模块停止对其的消费行为。
8.根据权利要求7所述的一种分布式事件异步处理系统,其特征在于,所述监控模块,具体配置为周期性地检查所有事件队列中待消费的事件数量,高于阈值时,则发出告警。