背景介绍:
先贴上celery官方文档:Celery - Distributed Task Queue — Celery 5.4.0 documentation
xxx项目中单点环境运行celery + redis,使用流畅,不做过多介绍。
切换高可用环境时,客户redis使用的是cluster集群,官方文档中并没有对redis cluster的支持,查看github,看介绍,作者也是暂时没有对cluster支持做出计划来,故celery放弃redis cluster作为broker的方案。仅支持单点redis和redis sentinel
解决思路:
客户要求不能引入其他组件,按照celery文档介绍,也放弃了RabbitMQ。准备放弃celery的时候,发现其他平台有使用kafka作为消息队列,而celery文档也指出正在对Zookeeper的支持进行实验,故采取折中措施,使用Zookeeper作为broker,使用mysql作为bac