message-queue - Google Pub/Sub 性能(低负载下的延迟)?
问题描述
我们即将选择 Google Cloud Pub/Sub 作为我们的消息总线。一些消息需要在低于 100-200 毫秒的低延迟时间内发送。
我在某处读到,在大量消息中,它表现良好,但对于每秒数百条消息这样的少量消息,Pub/Sub 可能会产生高延迟。
在上一个问题中,主题也不清楚。2016 年的谷歌云发布/订阅延迟是多少。
是否有任何关于 Pub/Sub 延迟和与消息量关系的定义指标?
解决方案
Cloud Pub/Sub在设计时考虑到大量消息,因此如果消息吞吐量过低,它有时会遇到困难。这与 Pub/Sub 如何平衡侦听器之间的拉取请求有关。
回到你的问题,没有关于这种行为的定义指标,也没有最小的延迟或你可以说它被认为是“高负载”的神奇数量的消息。实际上,它取决于工人数量、批量大小、每条消息的处理时间等因素。
我发现了另一个StackOverflow 答案,它更多地讨论了 Pub/Sub 的有效用例(每秒数千条消息)以及为什么建议 Cloud Pub/Sub 使用高负载。
编辑:
扩展此主题,向 Pub/Sub 实现添加异步层有助于提高其性能,包括低消息量场景中的延迟。Spotify 在与 Pub/Sub 合作时,意识到了这一点并创建了自己的 Async Cloud Pub/Sub Client。他们现在推荐使用Google 的 java 客户端,但值得考虑这些信息
推荐阅读
- blazor - 必须读取一个 XML 文件,如何防止它被 OnInitializedAsync 解析两次?
- javascript - OnClick Javascript函数在reactjs中不起作用
- javascript - 从 Google App Script 发送 twilio whatsapp 消息
- android - FAILURE:构建失败,在模拟器 nexus5 api27 上运行异常
- linux - 遍历函数名数组并在 bash 脚本中执行所有这些函数名
- c# - 如何启动 jsonResult 异步任务?
- node.js - AdminBro 与 postgres 和 sequelize
- javascript - 尽管有键,为什么我的所有子组件都重新渲染?
- python - 使用python从doc文件中获取大写/小写的特定单词?
- azure-logic-apps - 逻辑应用视频索引器连接器