message-queue相关内容

在 SQS 队列中使用多个消费者

我知道可以使用多个线程来使用 SQS 队列.我想保证每条消息都会被消费一次.我知道可以更改消息的可见性超时,例如,等于我的处理时间.如果我的进程花费的时间超过可见性超时(例如连接速度较慢),则其他线程可以使用相同的消息. 保证消息被处理一次的最佳方法是什么? 解决方案 保证消息被处理一次的最佳方法是什么? 您要求的是保证 - 您不会得到保证.您可以将邮件被多次处理的概率降低 ..
发布时间:2021-11-27 11:10:12 其他开发

将 AWS SQS 用作 Aurora 数据库的写入队列以提高系统性能是否有效

我正在 AWS 上开发需要支持高读写吞吐量的 Web 应用程序服务器.我的老板给了我这样的高级设计. 我被困在“写入队列"中.团队告诉我,我们需要它来提高写入性能,因为我们只能有 1 个可以写入的主副本.我对 SQS 和 RabbitMQ 等消息队列有一些基本的了解,但对将其用作数据库写入队列一无所知. 现阶段,我有3个问题: 使用这种架构,是否真的能够提高写入数据库的性能(而不 ..

如何以平衡的方式跨服务器分配(纸牌游戏桌)经销商?

我目前正在开发一种类似于二十一点的在线纸牌游戏,它将由一系列牌桌组成,其中每张牌桌都有一个“庄家"和多个人类玩家.经销商(计算机机器人)负责发牌和洗牌.表 将存储在 PostgreSQL 数据库表中,管理员可以添加/删除/编辑表. 游戏将由一个 Web 前端和一个 REST/websocket API 后端组成.我可能会使用 Kubernetes 和 Nginx 作为后端服务器的负载均衡器. ..

分布式分析系统数据一致性架构设计

我正在重构一个将进行大量计算的分析系统,我需要一些关于可能的架构设计的想法,以解决我面临的数据一致性问题. 当前架构 我有一个基于队列的系统,其中不同的请求应用程序创建最终由工作人员使用的消息. 每个“请求应用"将大型计算分解成较小的部分,这些部分将被发送到队列并由工作人员处理. 当所有部分都完成后,原始“请求应用"将合并结果. 此外,workers 使用来自中央数据 ..

微服务架构依赖

我已经阅读了很多关于微服务架构的内容,但有一点我不明白如何实现,希望您能帮我解决这个问题... 假设我有一个 web-api-endpoint,它接收 OrderMicroservice 负责处理的订单.当订单被放置时,必须更新库存,以便 OrderMS 向订阅者发布一个事件(使用例如 Nats 发布/订阅)并且 InventoryMS 将更新库存,因为它正在订阅当前事件/消息......我 ..

消息总线和消息队列理解

我想知道我对消息总线和消息队列工作的理解是否正确. 首先,我需要明确命名,服务总线与消息总线可以互换使用吗?这是一个发布者 - 订阅者类型的系统,其中添加了消息,让我们说任意数量的发布者可以从其中读取任意数量的订阅者的消息集合,到目前为止我是对的吗? P1 ---/``````S1\________ 服务总线中间件------+------ S2/消息收集 \______S3P2 --- ..

MSMQ 与临时表转储

我知道之前有人问过这个问题.但环顾四周,我仍然无法确定我应该走哪条路.这是我的情况,希望你能帮忙: 我们将拥有一系列 Web 服务,它们将按计划被数百个移动应用程序访问.这些服务将在设备上提供数据,同时将新信息发送到设备并从它们返回.从设备返回的数据需要更新单个中央 SQL 服务器数据库,该数据库还提供多个桌面应用程序和网站. 为了减少这些服务的请求/响应时间,我们决定在事后处理来自设 ..
发布时间:2021-11-17 02:27:21 其他开发

消息队列体系结构(客户端到 Web 服务器到工作线程并返回)

我有一个用 Node JS 编写的 Web 服务器,在 Heroku 上运行.服务器有一个 web 服务器进程和一个工作进程.Web 服务器通过 RabbitMQ 队列成功地向 worker 发送消息;worker 成功地将处理后的数据返回给 web 服务器.我使用随机生成的 Uuid 来跟踪消息并确保正确的消息与正确的原始消息配对. 在一个单独的项目中,我让客户端(网站)与 Web 服务器 ..

实现可扩展聊天服务器的策略

我希望实现某种聊天服务器.我希望它可以扩展.这似乎是一个大问题,所以我想我希望答案是方向指针,有点探索性. 最终用户客户端是网络或电话客户端.我认为某种 websocket 实现,例如 Socket.IO 很好. 在服务器端,我希望使用 Node.js.我希望架构是可扩展的,以便用户数量不受限制(好吧,在合理范围内,预计不会有大的机会,如果是,则有更聪明、有经验的人来工作的机会是合理的 ..
发布时间:2021-11-17 02:00:28 其他开发

Apache Kafka 是否适合用作无序任务队列?

Kafka 根据生产者分配的分区将传入的消息分成多个分区.来自分区的消息然后被不同消费者组中的消费者消费. 这种架构让我对使用 Kafka 作为工作/任务队列持谨慎态度,因为我必须在生产时指定分区,这间接限制了哪些消费者可以对其进行工作,因为一个分区只发送给一个消费者消费群体.我宁愿不提前指定分区,以便任何可以执行该任务的消费者都可以这样做.有没有一种方法可以在 Kafka 架构中构建分区/ ..
发布时间:2021-11-17 01:58:11 其他开发

微服务架构 - 当顺序无关紧要时通过服务传递消息

Tl;dr:“我如何通过一堆异步、无序的微服务推送消息,并知道该消息何时通过每个微服务?" 我正在努力为特定的微服务架构寻找合适的消息传递系统/协议.这不是一个“哪个最好"的问题,而是一个关于我的设计模式/协议的选择的问题. 我在开始队列中有一条消息.假设一个带有序列化 JSON 的 RabbitMQ 消息 我需要该消息通过任意数量的微服务 这些微服务中的每一个都需要长时间运行,必 ..

ActiveMQ vs Apollo vs Kafka

我以前没有任何使用 *MQ 的经验,我希望在一般情况下建立有关 JMS 和消息队列的知识.这样,我想知道我是应该从 ActiveMQ 开始还是完全“忽略"它并从自学 Apollo 开始.Apollo 和 ActiveMQ 一样功能齐全吗?它是否实现了 JMS 2.0(我看到 ActiveMQ 被 1.1 卡住了)?我会不会遗漏一些非常重要的东西? 另外,Kafka 与这两种解决方案相比如何? ..
发布时间:2021-11-15 22:04:31 其他开发

使用 __consumer_offsets 杀死节点导致消费者没有消息消费

我有 3 个节点(nodes0、node1、node2)Kafka 集群(broker0、broker1、broker2),复制因子为 2,Zookeeper(使用与 Kafka tar 一起打包的 zookeeper)在不同的节点(节点 4)上运行. 我在启动 zookper 和剩余节点后启动了代理 0.在 broker 0 日志中可以看到它正在读取 __consumer_offsets ..

Kafka - 如何在使用高级消费者的每条消息后提交偏移量?

我正在使用 Kafka 的高级消费者.因为我将 K​​afka 用作我的应用程序的“事务队列",所以我需要绝对确保我不会错过或重新阅读任何消息.我有两个关于此的问题: 如何向zookeeper提交偏移量?每条消息成功消费后,我将关闭自动提交和提交偏移量.我似乎无法找到有关如何使用高级使用者执行此操作的实际代码示例.有人能帮我解决这个问题吗? 另一方面,我听说提交到 zookeeper ..

Kafka 消费者在关闭后丢失消息状态

感谢您抽出时间回答问题.我正在将 kafka 与 python 使用者一起使用.当消费者启动并运行并且消息被推送到 kafka 并由消费者读取时,一切都运行良好. 但是,如果消费者由于某种原因宕机,当它恢复时,它只会读取消费者备份后发布到 kafka 的 NEW 消息.shutdown-poweron 之间的消息丢失,即消费者在重新启动后不读取这些消息. consumer = KafkaC ..
发布时间:2021-11-12 03:22:51 Python

将路由器数据推送到分布式消息系统

查询:做一个router接口作为kafka集群的生产者. 问题:我的路由器接口正在尝试将数据推送到运行 kafka 的端口.(默认为 9092). 问.1 但是 kafka 代理可以在不创建主题的情况下接受这些数据吗? 问.2 kafka 消费者可以在不指定主题的情况下拉取数据吗? 如果是,如何?如果没有,有什么办法解决这个问题,我怎样才能做到这一点? 第一次编辑: ..

是否可以使用 AVRO 为 Kafka 中的 Google Pub/Sub 主题定义模式?

据我所知,我们可以在 Kafka 上定义 AVRO 模式,使用该模式定义的主题将只接受与该模式匹配的数据.在接受进入队列之前验证数据结构非常有用. Google Pub/Sub 中有没有类似的东西? 解决方案 Kafka 本身不验证模式,因此主题本身没有模式,除了一对字节数组和一些元数据.序列化程序是生产客户端的一部分,在数据到达主题之前执行验证.同样,在 PubSub 中,归根结底 ..
发布时间:2021-11-12 02:51:57 其他开发

Kafka 作为未来事件的数据存储

我有一个 Kafka 集群,它根据源中的数据更改从源接收消息.在某些情况下,这些消息打算在将来进行处理.所以我有两个选择: 使用所有消息,并将将来用于不同主题的消息发布回 Kafka(主题名称中包含日期),并使用 Storm 拓扑查找包含该日期名称的主题.这将确保消息仅在其预定日期得到处理. 将其存储在单独的数据库中,并构建一个调度程序,该程序仅在该未来日期读取消息并发布到 Kafka. ..
发布时间:2021-11-12 02:51:13 Java开发

Kafka如何同时实现分布式处理和高可用?

我有一个由 n 个分区组成的主题.为了进行分布式处理,我创建了两个在不同机器上运行的进程.他们订阅具有相同分组 id 的主题并分配 n/2 个线程,每个线程处理单个流(每个进程 n/2 个分区). 有了这个,我将实现负载分配,但现在如果进程 1 崩溃,那么进程 2 无法使用来自分配给进程 1 的分区的消息,因为它在开始时只侦听 n/2 个流. 否则,如果我为 HA 配置并在两个进程上启 ..