知识卡片
队列该预先声明还是运行时声明
内容
RabbitMQ官方建议生产者和消费者在使用前都尝试声明交换器和队列,但更稳妥的做法是在业务上线前就通过管理页面、命令或配置中心提前创建好资源——这样能确保交换器与队列的绑定关系提前校验无误,避免因绑定缺失或路由键不匹配导致消息静默丢失,也便于按预估流量提前做容量规划。是否采用静态预创建取决于业务对灵活性和运维分工的权衡:预先创建有利于开发运维分离,动态声明则让业务程序更自包含。发散:把”资源存在性”的保证提前到部署阶段而非运行时兜底,是很多分布式系统降低运行时不确定性的常见手段。
参考来源
《RabbitMQ实战指南》第3章《客户端开发向导》