小啊小码农 2021-05-30 16:51 采纳率: 25%
浏览 34
已结题

关于SpringBoot和Rabbitmq的问题

场景大概就是供应商发货每次发货给不同的客户,然后把一些发货详情广播出来,每个客户有一个队列,但是如果一个小时没有人消费这个队列就会自动删除,也就是非持久化的比如

我这边作为消费者 我直接监听这个队列是能正常监听的

但是当生产者那边还没发送GD1880这个队列的时候我项目运行确实会自动创建这个队列,可是创建出来的和他那边的不一样,导致他那边如果发送GD1880的列队就会报错,因为他的是非持久化并且定义了过期时间的  但是我的没有,

本人是新手,求大佬们指点下,我这边消费者怎么去创建和他一摸一样的队列这是我后面改的 false  但是创建出来的没有过期时间  也不行,有没有大佬能在闲暇之余帮老弟解决下,两包香烟送上,感激不尽13412345515微信

  • 写回答

1条回答 默认 最新

  • 程序猿小亮 Java领域优质创作者 2021-05-31 09:47
    关注

    根据你场景的描述:供应商发货每次发货给不同的客户,然后把一些发货详情广播出来,这是典型的发布订阅模式,而不应该使用非持久化队列,针对每个客户去建立一个队列,这样的设计是有问题的。最佳的设计是设计成发布订阅模式,所有的发货详情都发布到一个队列,所有的客户都去订阅这一个队列就可以了。

    1、非持久化队列,存在消息丢失,发布订阅模式,只要客户订阅就都能消费消息。

    2、每个客户创建一个队列,队列不断创建和销毁,性能会比较差

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月27日
  • 已采纳回答 7月27日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分 合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备