【发布时间】:2021-01-31 12:06:40
【问题描述】:
我有一个 RabbitMQ 设计问题。假设我有 6 个交换和 10 个队列,并按如下方式划分
- 5 个“扇出”类型的交换,并绑定了 5 个队列
- 1 个“主题”类型的交换,并根据路由键被路由到 5 个不同的队列。
我有一个运行 Kubernetes 规模为 25 的微服务应用程序,所有这些应用程序每个进程获取 1 个 rabbitmq 连接。所以 25 个 rabbitmq 连接充当生产者。
我有另一个应用程序也在 Kubernetes 中运行,规模为 1,这些应用程序获取 1 个 rabbitmq 连接。所以 1 个 rabbitmq 连接充当消费者。
数字:假设每个交易所每天收到 10 万条消息。
技术栈:Node.js + amqplib
问题:
- 生产者需要创建多少个通道才能将消息发布到交易所?
- 消费者需要创建多少个通道来消费队列中的消息?
- 让一个应用程序充当消费者来使用所有队列中的消息是一种好方法吗?
- 如何根据 Kubernetes 中的队列大小自动扩展消费者?
- 是否可以根据消费者建立优先级?假设由于负载过重,我希望消费者停止从几个队列中消费,并将所有资源集中在其余队列上。
- 生产者和消费者应该创建多少个连接?
提前致谢:)
【问题讨论】:
标签: node.js kubernetes design-patterns rabbitmq