来自于美团技术文档:
当然,对于互联网的大部分应用来说,组间广播、组内单播是最常见的情形。 消息需要通知到多个业务集群,而一个业务集群内有很多台机器,只要一台机器消费这个消息就可以了。 当然这不是绝对的,很多时候组内的广播也是有适用场景的,如本地缓存的更新等等。所以,一般比较通用的设计是支持组间广播,不同的组注册不同的订阅。组内的不同机器,如果注册一个相同的 ID,则单播;如果注册不同的 ID(如 IP 地址+端口),则广播。https://tech.meituan.com/2016/07/01/mq-design.html
这里的组间广播是什么意思?我 Google 了好久,搜索结果都是单播多播广播的区别,没有提到组间广播,根据感觉好像指的是订阅发布模型,但是我没法将订阅发布模型与组间广播结合起来。 请各位指教。谢谢各位了!
1
raysonx 2021-08-11 22:46:31 +08:00 via iPhone 1
粗一看感觉是指 TCP/IP 的单播( unicast )和组播( multicast ),想一想又觉得是他们自己发明的概念,大概率是在应用层实现的。
|
2
sutra 2021-08-11 22:57:13 +08:00 1
ConsumerGroup
|
3
sutra 2021-08-11 22:58:53 +08:00
你去搜 Kafka consumer group (消费组),它这里说的组,就是这个消费组。
|
4
raysonx 2021-08-11 22:59:32 +08:00 via iPhone 1
非要类比的话,感觉他说的单播更像是 TCP/IP 的任播( anycast ),即只给同一个任播组机器中的任何一个发送消息。而他说的组间广播更像是 TCP/IP 的组播( multicast ),即订阅同一个 topic 的成员都可以收到消息,而其中每一个成员又是一个任播组。
|
5
jorneyr 2021-08-12 08:09:19 +08:00
不知道这个场景是否可以参考,如 RocketMQ 的 Topic 使用消费者组进行消费,消费有 2 种模式:
* Clustering: 同一条消息只有消费者组里的一个消费者可以消费 * Broadcasting: 同一条消息会被消费者组里的每一个消费者都消费一次 |
6
blackzhy 2021-08-12 09:33:52 +08:00 1
ConsumerGroup 是正解,这个概念是消息队列相关的吧,而且也不是这么翻译。
你搜到的单播多播广播是 TCP/IP 相关的概念 |
7
securityCoding 2021-08-13 17:39:51 +08:00
@blackzhy +1
|