SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
分布式系统消息传递中发布者/订阅者和生产者/消费者之间的区别?
问题描述
投票:0
回答:1
发布者/订阅者和生产者/消费者模型有什么区别?
我经常听到人们互换使用“发布者”和“制作者”这两个术语,但我认为它们并不相同。
rabbitmq
distributed-computing
messaging
distributed-system
messagebroker
1个回答
0
投票
发布者/订阅者(Pub/Sub)
特点:
解耦:
Pub/Sub 比生产者/消费者更加解耦。发布者和订阅者不需要互相了解。
一对多:
一条消息可以被多个订阅者接收。
基于主题的过滤:
消息通常按主题分类。订阅者可以订阅一个或多个主题。
异步:
一般异步操作。
无状态:
通常,Pub/Sub 是无状态的,这意味着每条消息都是独立的。
用例:
实时分析
监控系统
类似广播的用例(例如新闻源)
生产者/消费者
特点:
耦合:
通常耦合更紧密,因为消费者经常从生产者放置消息的特定队列中提取消息。
一对一或一对少:
通常一条消息由一个消费者处理,尽管存在差异。
基于队列的过滤:
通常采用队列来存储消息,消息按照到达的顺序进行处理。
同步或异步:
可以同步和异步操作。
状态:
可以维护状态,特别是在消息顺序很重要的情况下。
用例:
任务队列
点对点消息系统
工作流程系统
总结
耦合:
Pub/Sub 通常更加解耦。
消息传递:
在 Pub/Sub 中,一条消息可以发送给多个订阅者。在生产者/消费者中,通常一条消息发送给一个消费者。
过滤:
Pub/Sub 使用主题进行过滤,而 Producer/Consumer 一般使用队列。
异步性:
两者都可以异步,但生产者/消费者也可以同步工作。
状态:
Pub/Sub 通常是无状态的,而生产者/消费者可以根据需要维护状态。
最新问题
将点云图像转变为点云
如何在 shadcn 表格组件中添加水平滚动条
将图例与 ggplot 和 patchwork 合并
Laravel 未验证 JWT 令牌 Tymon/jwt-auth
你可以使用关键字 const 的替代品吗?
mongosh:找不到命令 mongodb 6.0 Ubuntu 22.04
Spring AOP 未拾取 AOP 注解
在 Django 管理后端使用自动完成下拉过滤器来处理普通字段(不是 ManyToMany 或foreignkey)
javascript 可以有竞争条件吗?
React:useEffect(() => f(a,b), [a]) 而不禁用react-hooks/exhaustive-deps
将参数从一个 Twilio 函数传递到另一个
根据返回 true 的复选框增加单元格的值
如何在徽章中显示 GitHub 操作上次运行日期
如何让 Emacs 显示空格?
从 CTE 使用 count + group by 时返回 0 值
在第二次调用 strtok() 期间,代码引发以下错误:大小 1 的读取无效
如何将qcow2转换为文件系统或存档文件
asio::use_future 如何与 co_await 一起使用?
HIP 设备同步
如何删除 docker 中正在被容器使用的卷
© www.soinside.com 2019 - 2024. All rights reserved.