2016 - 2024

感恩一路有你

laravel队列并发消费 如何设计一个MQ消息队列?

浏览量:2851 时间:2021-03-13 17:54:25 作者:admin

如何设计一个MQ消息队列?

1. 在上图中定义发送和使用消息的过程

2。首先定义消息协议,如ActiveMQ、stomp、XMPP等

3。定义消息协议,定义消息队列需要满足的场景

是否要保证消息的可靠性,必要时要保证存储的高可用性

是否要支持同步和异步消息

是否要保证消息队列例如rocketmq是高可靠性,卡夫卡是高吞吐量,但不高可靠性。

什么是买卖队列?

销售队列中的数字显示每个人有多少只手(一只手等于100股),并根据价格排列。例如,如果买入的最高价格是20元,如果有10只手挂20元,他们将被排在买入10的第一个显示,如果有8只手挂20元,他们将被排在买入8的第二个显示。销售也是如此。如果最低售价是19元,一共有12手,第一个售价会显示12手,第二个低价是19.20元。如果卖出价是14手,第二个卖出价将显示14手。成交时,先成交买一或卖一,再成交买二或卖二。而同样价格的申请书(如最高价20元的10手挂单),则是按照挂单时间顺序成交。

消息队列,如何保证消息不被重复消费?

现在消息机制一般是通过中间件实现的,如Kafka、ActiveMQ等。一般来说,有两种消费策略:至少一次和最多一次。

首先,至少一次。在这种情况下,使用消息很重要,不能容忍丢失。使用者从中间件集群中提取消息,在内部消费,并将消费结果通知集群。如果用户计算机重新启动或网络丢失数据包,此时将提取重复的消息。一般的解决方案是保证对使用者业务逻辑进行幂等处理。

第二,至少再来一次。此时,消息可能会丢失,并且不会重复消费。

作为接收器,保持接口幂等是一项基本功能。它可以处理一些意外情况,例如群集故障,或者需要跟踪消息数据的历史以便重新处理等

Rabbitmq从未使用过。在ActiveMQ中,我刚刚测试了可以有多个消费者,消息按顺序分发给不同的消费者,比如消息1到消费者a,消息2到消费者B,消息3到消费者a,消息4到消费者B。。其优点是实现了负载均衡。如果消费者B突然挂断,消费者a可以正常接收。

我明白,如果我说的是错的,我希望有上帝来纠正它。非常感谢你。

rabbitMQ点对点,一个队列可以多个消费者吗?

作为一个服务层,由于其更好的性能,PHP适合上层业务开发,通信可以使用HTTP,编码格式可以使用JSON或Pb

laravel队列并发消费 javascript redis支持的数据类型

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。