该问题需要从两个方面解答:
一:生产者
如果我们使用的消息队列为RabbitMQ,那么该问题不是我们需要担心的 因为RabbitMQ的生产者 生产的消息 都是有序id,都是如果我们使用的是kafka 那么我们就需要关注一下该问题,因为在kafka中它的一个ticop可以有多个层 消息发送时 消息是有序的 但是它是往多个层 有序发送 使用在消费者来看 消息是无序的
解决办法 一 我们可以让其ticop只分一个层(可以解决,但是kafka就失去其扩展性)
二:我们可以对每一相同类型的消息赋一个msgKey,让相同类型的消息进入同一个层,这样就可以保证消息的有序性了
二:消费者
我们一个生产者可以连接多个消费者 那么消息即使在生产时保证了有序性 在消费时还是出现消息的乱序,解决办法 让一个生产者只能连接一个消费者