Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.42 KB

File metadata and controls

24 lines (17 loc) · 1.42 KB

基本使用说明

MQK是一个后台任务执行框架。通过部署多个MQK进行横向伸缩。

生产者

生产者将消息保存在redis的list结构中,消费者pull里面的内容作为消息进行处理。事件类的消息会保存事件类的完整路径,包括命名空间和类名, 还包括事件类的类属性信息。生产者在入列消息的时候,MQK将这些信息序列化为JSON结构,然后保存到list中。MQK使用symfony/serializer 序列化,所以请保存为一些简单的JSON结构。(integer string array hash bool)。

Redis

Redis保存队列信息、消息的元信息和健康状态。消息的元信息在入列的时候是完整保存在队列中的,在其他状态下会存储到KV中,所以KV的存储会影 响消息队列的性能。健康状态保存在hash kv里面,可以查询这些kv了解进程的健康状态。后续的版本会开发web ui方便查看进程的健康状态。

消费者

消费者运行在多个进程当中,一个原因是可以利用多进程增强性能。当消费者进程崩溃的时候,主进程会启动新的进程继续工作。在进行扩容的时候, 如果计算资源不够,可以通过增加新的机器运行MQK实例,MQK可以简单的通过加机器解决扩容的问题。但是,如果消息量过大,导致压力是在Redis 上的时候,就需要将业务拆分分布到更多的Redis实例。