发布订阅机制和点对点机制

【Go项目】25. 在 gin 中引入 WebSocket 和 Hub_哔哩哔哩_bilibili

gorilla/websocket: Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go. (github.com)

1.订阅发布机制

引用上面链接的内容

发布订阅的基本工作原理

在分布式通信领域中,消息系统一般有两种典型的模式。一种是点对点模式(P2P,Point to Point),另一种是发布订阅模式(Pub/Sub,Publish/Subscribe)。接下来,我们就一起看看这两种模式,以帮助你深入理解发布订阅模式的原理。

首先,我们一起看一下什么是点对点模式

生产者将消息发送到消息中心,然后消费者从消息中心取出对应的消息进行消费。消息被消费后,消息中心不再存储该消息,因此其他消费者无法再消费该消息。也就是说,点对点模式虽然支持多个消费者,但一个消息只能被一个消费者消费,不允许重复消费。

这种模式就好比,限定了每篇论文只能被一个用户消费,比如现在有一篇分布式相关的论文,这篇论文推送给学生 A 之后,论文网站就必须将其删除或下架,也就是说其他用户无法再获取或阅读该论文了。(当然实际情况并不是这样的,这里只是为了方便你理解,我做了相应的假设。)

接下来,我们看一下发布订阅模式

生产者可以发送消息到消息中心,而消息中心通常以主题(Topic)进行划分,每条消息都会有相应的主题,消息会被存储到自己所属的主题中,订阅该主题的所有消费者均可获得该消息进行消费。

发布订阅机制和点对点机制_第1张图片

发布订阅机制和点对点机制_第2张图片

我的理解是,点对点模式就是生产者生产的消息有一个固定的消费者,其他人都拿不到,是1-1。

订阅发布更像是分组,生产者生产某一类型的数据,对应一个组的每个成员都能拿到这则消息,是1-n

你可能感兴趣的:(一些小知识,golang,开发语言)