rocketmq队列数量多少合适 java如何获取rabbitmq队列中消息数量?
java如何获取rabbitmq队列中消息数量?
这里是rabbitmq的消息确认机制:“为了保证消息不会丢失,rabbitmq支持消息确认机制。在接收和处理消息之后,客户机可以向rabbitmq发送一条ACK消息,告诉它消息可以被安全删除。如果客户端在发送ACK之前意外死亡,rabbitmq将消息传递给下一个使用者客户端。如果有多个客户机,则rabbitmq在传递消息时进行轮询。rabbitmq如何判断客户已经死亡?唯一的依据是客户端是否断开连接。没有超时机制,也就是说,客户端可以长时间地处理消息。只要连接没有断开,rabbitmq将始终等待ACK消息。“我现在面临的问题是:我有几个线程要从消息队列中获取数据,但是会有异常数据导致线程挂起,即“客户端在发送ack之前意外死亡”。Rabbitmq会将消息传递给下一个客户机,这样的异常数据会挂断我的所有线程。现在我想实现这个功能是的:如果异常数据导致进程挂起,我不会让rabbitmq把这个消息传递给下一个客户机,而是把它放到另一个地方或者单独处理它。我该如何实现这一点?
如何设计一个MQ消息队列?
1. 在上图中定义消息发送和消耗的过程
2。为消息定义消息协议,如ActiveMQ、stomp、XMPP等。定义消息协议,定义消息队列需要满足的场景
是否要保证消息的可靠性,必要时要保证存储的高可用性
是否支持同步和异步消息
是否要保证消息的顺序
是否需要延迟消息要支持
很多开源的实现功能可以参考详细信息。例如,rocketmq是高度可靠的,Kafka是高吞吐量的,但不是高度可靠的。
rocketmq队列数量多少合适 rabbitmq queue数量限制 rabbitmq查询消息数量
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。