什么分布式消息队列支持百万级队列?

2024-02-14

我正在寻找一个分布式消息队列,它将支持数百万个队列,每个队列每秒处理数十条消息。

消息会很小(几十个字节),而且我不希望队列变得很长——每个队列最多有几十条消息,但是当系统运行时,队列应该保持相当长的状态空的。

我不确定集群中有多少个节点——可能取决于具体的解决方案,但如果我必须猜测,我会说十个节点。我希望队列对集群内的单个节点故障具有相对的弹性,但偶尔丢失一些消息不会让我失眠。

这样的消息队列存在吗?似乎大多数领域都针对以高吞吐量处理数百个队列进行了优化。但是 SQS 是建立在什么基础上的呢?肯定不是魔法。

Update:

根据要求,它确实可能有助于阐明我的问题领域。 (我之前省略了细节,以免把事情搞混。)我正在试验分布式细胞自动机,最初的目标是模拟一百万个细胞。在某些 CA 模型中,添加事件模型很有用,以便单元可以向其邻居发送事件。因此,有一百万个队列,每个队列有一个消费者和八个左右的生产者。

目前成本是一个问题,因为我自己资助实验。 (因此亚马逊的 SQS 可能遥不可及。)


从你的描述来看,它看起来像OMG的数据分发服务 http://en.wikipedia.org/wiki/Data_distribution_service可能很合适。它与消息队列技术有关,但我更愿意将其称为分布式数据管理基础设施。它是完全分布式的,并支持高级功能,通过一组丰富的服务质量设置,您可以对数据的分发方式进行大量控制。

对你的问题不太了解,我可以猜测一种方法可能是什么。 DDS 旨在将强类型数据项的状态分布为具有类型化属性的结构。您可以创建一个描述自动机状态的数据类型。它的属性之一可以是唯一标识系统中自动机的 ID。如果可能的话,将根据一种方案进行分配,以便每个自动机都知道其邻居的 ID 是什么(如果它们存在)。每个自动机将根据需要发布其状态,从而产生包含所有自动机当前状态的分布式数据空间。 DDS 支持所谓的数据空间分区。如果您利用了这一点,那么机器中的每个节点都将负责所有自动机的明确定义的子集。只有与不同分区相邻的自动机才会通过线路进行通信。由于自动机知道其邻居的 ID,因此它们能够在数据空间中查询其感兴趣的自动机的状态。

如果没有白板,解释起来有点困难,但最终结果将是大多数自动机的单个实例(这是一种非常轻量级的消息队列),以及边界处的自动机的两个或三个实例一个分区的。如果您有十个节点和一百万个自动机,那么每个节点必须能够管理大约十万个自动机。我见过使用这种规模甚至更大的 DDS 构建的系统,每个实例每秒进行数十次更新。好处是,该技术可以很好地随着节点数量进行扩展,因此您可以通过添加更多节点来降低每个节点的资源负载。

如果这是一个研究项目,那么您甚至可以免费使用商业产品。只需谷歌搜索 dds 研究许可证即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么分布式消息队列支持百万级队列? 的相关文章

  • 使用 JMS 中的 CCDT 文件连接到 IBM MQ

    我尝试使用 JMS 和客户端通道定义表 CCDT 连接到 IBM MQ 当我单独指定 MQ 属性时 我能够成功连接到 QueueManager 但是当我尝试使用 CCDT 文件时 出现以下异常 由于客户端通道定义表 CCDT 用于确定客户端
  • 在 Lparallel 库中使用队列 (Common Lisp)

    lparallel 库中队列的基本讨论位于https z0ltan wordpress com 2016 09 09 basic concurrency and parallelism in common lisp part 4a para
  • 节点集群工作人员内存使用情况

    有谁知道是否有一种独立于平台的方法来获取工作人员的内存使用情况 我希望它会像这样工作 console log App process memoryUsage process memoryUsage cluster on online fun
  • 在序列/类图中将消费/生产事件表示为从微服务到消息队列[Kafka]的UML组件

    我有一个生成一些事件的用例 消费其他微服务生成的事件以及自己生成的事件 如何在序列图 类图中表示 Kafka 系统 运行中的微服务以及生产 消费事件 在 UML 中 我们有一个来自 DB 的特殊图表 我们有 Kafka 和 cron 作业的
  • JSF 2.0 应用程序的水平扩展

    鉴于 JavaServer Faces 在服务器端本质上是有状态的 建议使用哪些方法来水平扩展 JSF 2 0 应用程序 如果一个应用程序运行多个 JSF 服务器 我可以想象以下场景 Sticky Sessions send all req
  • 通过脚本在 Microsoft 集群中创建专用 MSMQ 队列

    我们正在迁移到 Windows 2008 R2 Standard 并将使用 Microsoft 集群 主动 被动 配置 我们的应用程序严重依赖于 MSMQ 专用队列 并且我们的安装使用以下 C 代码创建了 100 多个专用队列 Messag
  • 具有共享对象的 Tomcat 6 集群

    我们有一个大型的 tomcat 服务器集群 我正在尝试找到一种有效的方法来在所有服务器之间共享计数 该计数是购买的 小部件 的数量 需要针对每次页面浏览进行检查 任何服务器都可以完成计数的销售和增量 此时新值应可供所有集群成员使用 我们不想
  • beanstalkd 的统计数据/监视器/检查器

    有谁知道有一个可以监控 beanstalkd 队列的应用程序吗 我正在寻找一些可以显示管道和工作统计信息并允许您检查详细信息的东西 我对语言 平台并不是很挑剔 只是想在编写自己的语言 平台之前知道是否有可用的东西 所有这些以及至少另外两个都
  • 自动完成后端

    这是一个面试问题 设计一个自动完成的分布式后端 我会回答如下 自动完成是按给定后缀在字典中进行搜索 这本词典可能应该被组织为trie 该词典是根据最常见的查询构建的 但这是另一回事了 现在我假设字典不会经常更改 例如每天一次而不是每毫秒一次
  • 仅在一个WebLogic集群节点上运行@Scheduled任务?

    我们正在集群 WebLogic 10 3 4 环境中运行一个 Spring 3 0 x Web 应用程序 war 其中包含夜间 Scheduled 作业 但是 当应用程序部署到每个节点时 使用 AdminServer 的 Web 控制台中的
  • Spark:同时从具有不同内存/核心配置的单个 JVM 作业启动

    问题解释 假设您有带有独立管理器的 Spark 集群 其中作业通过SparkSession在客户端应用程序中创建 客户端应用程序在 JVM 上运行 为了提高性能 您必须使用不同的配置启动每个作业 请参阅职位类型示例 below 问题是您无法
  • 在高性能Java应用程序中异步处理低速消费者(数据库)的最佳方式是什么

    One EventHandler 数据库消费者 Disruptor调用数据库中的存储过程 速度太慢 以至于阻塞Disruptor一段时间了 因为我需要Disruptor继续运行而不阻塞 我正在考虑添加一个额外的队列 以便EventHandl
  • LRPC 的意义何在?为什么有人想要对同一台机器进行远程过程调用?

    根据我对 RPC 远程过程调用 的理解 它们提供了一种向远程计算机发送函数调用 调用等的方法 这样做的明显优点是 您可以拥有一个在机器集群上运行的单个程序 并且可以处理更多请求 更多数据等 但我很困惑LRPC 轻量级RPC http www
  • 为什么需要消息队列来与 Web 套接字聊天?

    我在互联网上看到了很多使用 Web 套接字和 RabbitMQ 进行聊天的示例 https github com videlalvaro rabbitmq chat https github com videlalvaro rabbitmq
  • 将请求传递给特定的分叉节点实例

    如果我错了 请纠正我 但不可能在同一端口上启动多个 http 服务器 基于此 有趣的是 NodeJS 集群可能会分叉 因为我知道有一个主人正在将请求传递给其中一个分叉工人 什么worker是由操作系统管理的或者cluster schedul
  • 如何更改 apache Spark Worker 每个节点的内存

    我正在配置 Apache Spark 集群 当我运行具有 1 个主服务器和 3 个从服务器的集群时 我在主监视器页面上看到以下内容 Memory 2 0 GB 512 0 MB Used 2 0 GB 512 0 MB Used 6 0 G
  • 在 PHP 中使用消息队列与普通 Cron 作业之间的区别

    我们有一个基于 PHP 构建的大型 Web 应用程序 该应用程序允许安排推文和墙贴 并且有从服务器发出的预定电子邮件 我所说的 计划 是指这些 PHP 脚本计划在特定时间运行cron 大约有 7 个 PHP 文件可以完成上述工作 我一直听说
  • 更改 RabbitMQ 队列中的参数

    我有一个 RabbitMQ 队列 最初声明如下 var result channel QueueDeclare NewQueue true false false null 我正在尝试添加死信交换 因此我将代码更改为 channel Exc
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 无法使用 Keras 中的 multi_gpu_model 后的 model.save 保存模型

    升级到 Keras 2 0 9 后 我一直在使用multi gpu model实用程序 但我无法使用保存我的模型或最佳权重 model save path 我得到的错误是 类型错误 无法pickle模块对象 我怀疑访问模型对象时存在一些问题

随机推荐

  • 使用 PDFBox 填充横向 PDF

    我尝试使用 PDFBox 填写 PDF 表单 并成功地使用纵向文档完成了这一工作 但我在横向模式下填写文档时遇到问题 字段已填满 但文本方向不好 它看起来是垂直的 就像它仍然是纵向的 但旋转了 90 度 这是我的简化代码 PDDocumen
  • 如何在没有 xml 配置的情况下使用 JasperReportsPdfView

    我想要一个控制器方法从 JasperReports jrxml 文件返回 PDF 而不使用任何 xml 配置 我想用一个JasperReportsPdfView 这有可能吗 我知道这可以只用 Java 代码来完成 就像这个博客中一样 htt
  • 为什么fragment中的生命周期方法是公开的,而activity的生命周期方法是受保护的?

    该活动被保护封装在框架包 android app 和子类中这个链接 https stackoverflow com questions 20161662 why are lifecycle methods in activity class
  • 当父元素有最小高度/最大高度值但没有高度值时,为什么子元素上的 height: 100% 不适用?

    假设我们有以下设置 container background color red width 500px min height 300px child background color blue width 500px height 100
  • 日期范围内的 SQL 分割数

    我有一个表 例如这个数据 ID start date end date amount a1 2013 12 01 2014 03 31 100 我想要一个分割日期的查询 这样我就可以将全年的金额分割出来 如下所示 ID org start
  • c# - 数组从哪里继承(即 .int[] )

    创建数组时 例如int 它是否继承自任何东西 我认为它可能继承自 System Array 但查看编译后的 CIL 后发现并非如此 我认为它可能继承自 System Array 或类似的东西 考虑到您可以调用方法并访问数组上的属性 I e
  • 使用 C 编程频谱图 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试用 C 语言制作音频频谱图
  • 向量数学,求角度

    我试图通过编写一个小型 2D 游戏来学习 XNA 它是一个自上而下的视角 我尝试进行双重移动 使用左右和上下键沿轴移动 以及向右看鼠标光标 以便玩家可以同时奔跑和瞄准 我有一个用于玩家位置的向量 m PlayerPos 一个用于鼠标位置的向
  • 如何在 NestJS 中为每个新的 HTTP 请求使用新实例?

    我有一个 API 并且正在尝试发送请求 这是有效的 但我注意到在收到回复后 这些类并没有被销毁 我目前正在使用 NestJS 但是当我尝试测试时 nodeJS ExpressJS 也遇到了这个问题 我正在使用以下代码 Injectable
  • 如何计算两个地点之间的时差

    我在计算两个时区之间的时差时遇到问题 如果我在位置 A 我知道纬度和经度以及当前时间 我去位置B我知道纬度和经度以及当前时间 如何计算当前两个点之间的时间差 以UTC为单位 首先获取一个可以转换纬度 经度以获取国家 地区和州 省的数据库或库
  • 为什么我的 SQL“NOT IN”子句产生与“NOT EXISTS”不同的结果

    当我期望两个 SQL 查询产生相同的结果时 它们会产生不同的结果 我正在尝试查找没有相应位置的事件的数量 所有位置都有事件 但事件也可以链接到非位置记录 以下查询生成计数 16244 这是正确的值 SELECT COUNT DISTINCT
  • 定义双感叹号?

    我理解双感叹号的作用 或者我认为我理解 但我不确定它是如何在随机对象上定义的 例如下面的代码片段 Assignment a if getAssignment query a return false hasSolution a if a r
  • uint 和 unsigned int 之间的区别?

    有什么区别吗uint and unsigned int 我正在查看此网站 但所有问题都涉及 C 或 C 我想要一个关于C语言的答案 如果相关的话 请注意我在 Linux 下使用 GCC uint不是标准类型 unsigned int is
  • 关闭 GPS 时广播接收器调用了 2 次?

    显现
  • 将 UTF-8 编码的 NSData 转换为 NSString

    我有UTF 8编码NSData来自 Windows 服务器 我想将其转换为NSString对于iPhone 由于数据包含在两个平台上具有不同值的字符 如度数符号 如何将数据转换为字符串 如果数据不是空终止的 您应该使用 initWithDa
  • 当只有插件源可用时,如何在 sbt 项目中使用插件?

    我想使用sbt 斯克鲁奇 https github com bancek sbt scrooge插件 但它的存储库现在不可用 http koofr github com http koofr github com 我想我应该将这个插件的源代
  • 如何在 NLTK 中进行依存解析?

    翻阅 NLTK 书 并不清楚如何从给定的句子生成依存树 本书的相关部分 依存语法子章节 https www nltk org book ch08 html dependencies and dependency grammar给出一个示例图
  • 数组与数组列表有显着差异吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 中何时使用 ArrayList 而不是 array https stackoverflow com questions 412813 when to use arraylist over ar
  • 混合 C 和 C++...对函数的未定义引用 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在 C 项目中 我尝试调用这个在 C 中定义的函数 int CyBtldr RunAction CyBtldr Action action
  • 什么分布式消息队列支持百万级队列?

    我正在寻找一个分布式消息队列 它将支持数百万个队列 每个队列每秒处理数十条消息 消息会很小 几十个字节 而且我不希望队列变得很长 每个队列最多有几十条消息 但是当系统运行时 队列应该保持相当长的状态空的 我不确定集群中有多少个节点 可能取决