RabbitMQ 在 Spring Boot 进阶之交换器 Topic Exchange

上文中说到,文件上传服务器有这么多的需求:给所有用户一点奖励,还要记录一条日志,甚至还要通知某某人去对上传的资料进行审核。
那如果我们不想这么做了,我们想要的是:

  • 只有上传达到15m的才给奖励
  • 某些类型的文件不需要进行审核

那怎么来设计我们的消息中间件呢?

这时候就需要我们的Topic交换器了

Topic交换器

将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.” 只会匹配到“audit.irs”。我在RedHat的朋友做了一张不错的图,来表明topic交换机是如何工作的:

这里写图片描述

有了Topic交换器:

  • 将日志监听的队列路由键设置为 #.log 代表log结尾的都要记录日志
  • 将文件达到15m的路由键设置为#.reward.#
  • 将审核的路由键设置为 #.verify.#

问题迎刃而解,代码就不演示了..

参考文章:
http://blog.csdn.net/rainday0310/article/details/22082503
https://spring.io/guides/gs/messaging-rabbitmq/
https://www.ctolib.com/docs-SpringBoot-c-mq_rabbitmq.html
以及书籍《RabbitMQ实战 高效部署分布式消息队列》

猜你喜欢

转载自blog.csdn.net/anurnomeru/article/details/80160189