[我最近几周一直在和RabbitMQ
玩耍,并开发了以下设计模式
producer <--> message broker (rabbitmq) <---> queues <---> consumer.
我使用过几个RabbitMQ客户端,例如EasyNetQ
和MassTransit
。两个客户端都使用我的上述设计,但是它们之间的共同点是,如果不存在Exchange
,它将创建一个,并且类似地,如果不存在队列,则将相应地创建一个。
但是,我认为从生产者或消费者创建交换,队列和绑定是一种好的设计方法?
在RabbitMQ管理中手动创建交换和队列是否更有意义?然后阻止Producer和Consumer在代码中创建以上代码?
但是我更担心的是,如果删除交换和队列又会破坏生产者和消费者,该怎么办?
你对男人有什么建议?
您的生产者和消费者的CD均应负责创建这些资源,您的CD应检查资源是否存在,并创建不存在的资源。
您应避免从代码中创建/删除资源,生产者和使用者实际上应该只是发布/使用,如果您使用的是云提供商,则根本不应该授权代码来操纵资源。
我的操作方式:
此外,您还将减少错误沟通,资源过度使用和资源操纵(如删除队列!)的风险。