我是RabbitMQ等消息代理的新手,我们可以使用它为Celery等调度系统创建任务/消息队列。
现在,这是一个问题:
我可以在PostgreSQL中创建一个表,该表可以附加新任务并由 Celery 等消费者程序使用。
为什么我要为此设置一个全新的技术,比如 RabbitMQ?
现在,我认为扩展无法解决问题,因为我们的数据库(如 PostgreSQL)可以在分布式环境中工作。
我用谷歌搜索数据库对特定问题有什么问题,我发现:
- 轮询使数据库保持忙碌且性能低下
- 锁定表 -> 再次表现不佳
- 数百万行任务->再次,轮询性能低下
现在,RabbitMQ 或任何其他类似的消息代理如何解决这些问题?
另外,我发现AMQP
协议是它遵循的。这有什么了不起的?
Redis也可以用作消息代理吗?我发现它更类似于 Memcached 而不是 RabbitMQ。
请对此有所了解!