什么是发布订阅?
发布和订阅是进程间的一种消息通信模式:发送者(publisher)将消息发送给一个第三方,订阅者(subscriber)从第三方那里接收消息。

这个第三方我们通常称之为 消息中间件,消息中间件主要是用来做系统之间的异步通信,常见的消息中间件有:ActiveMQ,RocketMQ,RabbitMQ,Kafka 等。
Redis 一般不用来做消息中间件,只用它做缓存,但是它仍然提供了这个功能。
发布和订阅应用场景?
场景:我们订阅了头条上的某个栏目的新闻,当这个栏目有新的新闻的时候,头条(服务端)会主动推送给我们,而我们(客户端)无需主动请求。
发布和订阅的优点?
由于我们所需的消息并不是从服务器直接请求得来,而是从消息中间件获得,因此缓解了服务端在高并发量情况下的压力。
就好比你是手机生产厂商,你不直接卖手机,而是把手机先交给代理商,代理商替你卖,你就轻松了。

发布和订阅的缺点?
-
如果消费者不在线,消息可能接受不到(当然我们可以通过持久化存储的方式来解决)。
-
实时性

Redis的发布订阅功能提供了一种进程间的消息通信模式。发送者发布消息到第三方,订阅者从第三方接收消息。尽管Redis主要用作缓存,但也可用于此场景。发布订阅适用于服务端主动推送信息的应用,如新闻推送。该模式在高并发下能减轻服务器压力,但缺点是消费者不在线时可能丢失消息,实时性相对较弱。Redis通过`SUBSCRIBE`、`PSUBSCRIBE`和`PUBLISH`命令实现发布订阅功能,支持通配符订阅多个频道。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



