消息积压是我们在使用消息队列时经常遇到的问题,它的直接原因是系统中某个部分出现了性能问题,没有来得及处理上游发送的消息。优化性能避免消息积压当我们引入消息系统后,站在消息系统的角度,整个系统可以分为三部分:1.消息生产者,2.消息队列,3.消息消费者。我们在谈论优化性能避免积压消息时,重点会放在消息生产者和消息消费者这两部分。对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。消息生产者性能优化如果我们的代码发送消息的性能有问题,我们可以检查一下是不是发消息之前的业务逻辑耗时太多了。我们可以通过调整发送消息的批量大小,或者增加并发,来解决消息生产者面临的问题,
消息积压是我们在使用消息队列时经常遇到的问题,它的直接原因是系统中某个部分出现了性能问题,没有来得及处理上游发送的消息。优化性能避免消息积压当我们引入消息系统后,站在消息系统的角度,整个系统可以分为三部分:1.消息生产者,2.消息队列,3.消息消费者。我们在谈论优化性能避免积压消息时,重点会放在消息生产者和消息消费者这两部分。对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。消息生产者性能优化如果我们的代码发送消息的性能有问题,我们可以检查一下是不是发消息之前的业务逻辑耗时太多了。我们可以通过调整发送消息的批量大小,或者增加并发,来解决消息生产者面临的问题,
1RocketMQ使用相关问题1.1保证消息的可用性/可靠性/不丢失消息可能在哪些阶段丢失呢?可能会在这三个阶段发生丢失:生产阶段、存储阶段、消费阶段所以要从这三个阶段考虑:image.png1.1.1生产在生产阶段,主要通过请求确认机制,来保证消息的可靠传递。同步发送的时候,要注意处理响应结果和异常。如果返回响应OK,表示消息成功发送到了Broker,如果响应失败,或者发生其它异常,都应该重试。异步发送的时候,应该在回调方法里检查,如果发送失败或者异常,都应该进行重试。如果发生超时的情况,也可以通过查询日志的API,来检查是否在Broker存储成功。1.1.2存储存储阶段,可以通过配置可靠性
1RocketMQ使用相关问题1.1保证消息的可用性/可靠性/不丢失消息可能在哪些阶段丢失呢?可能会在这三个阶段发生丢失:生产阶段、存储阶段、消费阶段所以要从这三个阶段考虑:image.png1.1.1生产在生产阶段,主要通过请求确认机制,来保证消息的可靠传递。同步发送的时候,要注意处理响应结果和异常。如果返回响应OK,表示消息成功发送到了Broker,如果响应失败,或者发生其它异常,都应该重试。异步发送的时候,应该在回调方法里检查,如果发送失败或者异常,都应该进行重试。如果发生超时的情况,也可以通过查询日志的API,来检查是否在Broker存储成功。1.1.2存储存储阶段,可以通过配置可靠性