题目:小红书订单状态变革必须严格有序,如何设计分区策略?
分析:首先这是订单域的问题,熟悉订单的同学应该知道怎么搞。哈哈。 我没有做过订单,我大概猜测一下,应该是订单的未支付->已支付->配送中等等状态的 变更要有序。这种状态变更,对时效性要求较高,为啥不直接调用接口呢? 这题应该考的是,同一个uid的数据到了发送到了不同的partition,多个消费者在消费的时候 会对同一个uid的数据,消费乱序了。
回答
kafka topic有个key的功能,只要在发送的时候把key指定为uid,这样同一个uid的订单数据都会到同一个partition。消费者组的某一个消费者会一直消费一个固定的partition。 这样就可以保证严格的有序性了。