Dhe*_*rik 5 java migration spring rabbitmq spring-rabbit
我想知道是否有任何替代方法来创建/更改/删除exchanges
,queues
并且bindings
不依赖框架(在我的例子中是Spring)来实现这一点及其限制。
我经常需要更改Routing Key、Queue或Exchange的名称,而这些框架不允许进行这种“精细”更改。因此,趋势是继续使用队列/键的原始名称,甚至原始设置(持久、DLQ 等)。将来,这最终会导致队列的组织混乱,因为您无法轻松地对其名称、配置进行适当的维护,最终无法在不同的交换机上重新组织它们等。
实际上,实现这一目标的唯一方法是手动从每个环境中删除它们,并让框架重新创建它们。或者移动临时队列的消息来执行相同的操作。
我想知道是否有任何替代方法可以控制这个问题,比如数据库迁移工具,如 Liquibase、Flyway 等。
与数据库问题做一个并行的情况,目前让 Spring 在 RabbitMQ 中创建所有内容在我看来类似于在生产数据库上保留hbm2ddl
Hibernate 选项。update
您可以更改某些内容,但不能更改其他内容 - 但您必须以编程方式而不是声明方式进行。
您可以使用RabbitAdmin.declareBinding()
将队列与不同的路由键(和/或交换)绑定,然后使用removeBinding()
删除旧的。
您无法更改队列参数(DLQ 设置等)或持久性。
您可以使用 shovel 插件将消息从旧队列移动到新队列。
归档时间: |
|
查看次数: |
2245 次 |
最近记录: |