我有一套使用springboot rest的微服务。这些微服务将部署在自动标度和负载平衡的环境中。其中一个服务负责管理系统的配置。当其他微服务启动时,它们将从此服务获得配置。如果配置被更新,我需要通知所有当前正在运行的微服务实例来更新它们的缓存配置。
我正在考虑使用RabbitMQ和一个扇出交换。在此解决方案中,启动时的每个实例都将创建其队列并将该队列绑定到exchange。当发生配置更改时,配置服务将向当前绑定到该交换的所有队列发布更新。
但是,由于服务实例被删除,我不知道如何删除特定于该实例的队列。我搜索了一下,但找不到一个完整的解决方案的工作示例。
有什么帮助或建议吗?
发布于 2022-04-15 16:36:46
这个想法和解决方案是正确的。您所忽略的是,由您的消费者服务创建的那些队列可以声明为auto-delete=true:https://www.rabbitmq.com/queues.html。只要您的服务结束,队列也在那里。您停止您的服务,它的消费者将停止和取消订阅。在取消订阅最后一个使用者时,队列将从代理中删除。
另一方面,我建议查看Spring项目,它实际上是针对这样的任务的:https://spring.io/projects/spring-cloud-bus。
https://stackoverflow.com/questions/71886244
复制相似问题