消息中间件应用的常见问题与方案|得物技术
原创 李苏醒 得物技术 1. 引言 消息队列(MQ)中间件已经普及很多年了,在互联网应用中,通常稍大一些的应用,我们都可以见到MQ的身影。当前市面上有很多中消息中间件,包括但不限于RabbitMQ、RocketMQ、ActiveMQ、Kafka(流处理中间件) 等。很多开发人员已经熟练地掌握了一个或者多个消息中间件的使用。但是仍然有一些小伙伴们对消息中间件不是特别熟悉,因为各种原因不能深入地去学习了解个中原理和细节,导致使用的时候可能出现这样那样的问题。在这里,我们就针对消息队列中间件使用中的典型问题作一番分析(包括顺序消息、可靠性保证、消息幂等、延时消息等),并提供一些解决方案。 2. 消息中间件应用背景 2.1 消息中间件基本思想 我们在单个系统中,一些业务处理可以顺序依次进行。而涉及到跨系统(有时候系统内部亦然)的时候,会产生比较复杂数据交互(也可以理解为消息传递)的需求,这些数据的交互传递方式,可以是同步也可以是异步的。在异步传递数据的情况下,往往需要一个载体,来临时存储与分发消息。在此基础上,专门针对消息接收、存储、转发而设计与开发出来的专业应用程序,都可以理解为消息队列中间...