在消息队列的最后一篇文章中,我们再来学习两个非常常见的队列功能。一个是延时队列,一个是优先级队列。它们的应用场景非常多,也非常有意思,不同的消息队列工具都提供了不同的实现,同样的,Redis 在 Laravel 框架中还是通过逻辑代码来实现类似功能的,非常值得大家来好好研究一下。
上节课我们已经学习到了消息的持久化和确认相关的内容。但是,光有这些还不行,如果我们的消费者出现问题了,无法确认,或者直接报错产生异常了,这些消息要怎么处理呢?直接丢弃?这就是丢消息了呀。再次处理?一直继续报错怎么办?这条消息就永远都在不停报错的死循环中了。
一个消息队列,最核心的功能就是消息的顺序收发,这个我们之前已经了解过了。而最核心的保证机制,则是在基础的功能之上,消息不丢,消息不重复发送。对于这两个功能,大部分消息队列应用都会通过持久化机制和消息确认机制来实现,我们今天先从 RabbitMQ 的相关功能说起。
上一回我们已经学习了最典型的消息队列的应用。接下来,我们就要学习到的是消息队列中的另一个非常常见的模式。这个模式其实也是一种设计模式,它叫做发布订阅模式。之前我们学习过的,一个叫生产者,一个叫消费者。而到了这边,我们将生产者改个名字叫做发布者,它们两者之间可以看成是完全一样的。而消费者则变成了订阅者,这个就有很大的不同了。
在上一课中,我们已经学习到了什么是消息队列,有哪些消息队列,以及我们会用到哪个消息队列。今天,就直接进入主题,学习第一种,最简单,但也是最常用,最好用的消息队列模式。
来了来了,消息队列系列总算来咯。对于搜索引擎相关的知识大家消化的怎么样呀?其实对于搜索引擎来说,我们学习的内容还是挺全面的,也算是比较深入了。而对于消息队列来说,我不准备写得太深入,因为对于这个东西,实战并不算多,主要的原因咱们在今天这篇文章结束的时候再详细的来说吧。