[ https://issues.apache.org/jira/browse/ROCKETMQ-122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
dongeforever reassigned ROCKETMQ-122: ------------------------------------- Assignee: dongeforever > Support Global Ordered Messaging > -------------------------------- > > Key: ROCKETMQ-122 > URL: https://issues.apache.org/jira/browse/ROCKETMQ-122 > Project: Apache RocketMQ > Issue Type: Wish > Components: rocketmq-broker, rocketmq-client, rocketmq-store > Reporter: yukon > Assignee: dongeforever > Priority: Minor > Labels: gsoc2018 > Fix For: 5.0.0 > > > A single memory queue is easy to support FIFO(first in, first out) semantic, > inspired by that, many messaging systems support ordered messaging in a > storage queue/partition. > Ordered Messaging is designed to enhance messaging between applications when > the order of operations and events is critical, for example: > * The chat messages should be displayed orderly in the same chat channel. > * Execute the concurrent modifications in the right order, like product > price. > * The operations of the same user should be executed orderly in the > electricity system. > As described earlier, it's easy to support ordered messaging in a single > queue/partition, the producer can send a kind of messages to the fixed > partition with a sharding key. But this solution doesn't have a good > scalability and has hot-pot issue obviously. > > To resolve this issue, we need a global ordered messaging mechanism to have a > good scalability without hot-pot issue. > A practical proposal is that sending messages to distributed queue/partition > with an ordered key. Messages are ordered in the same queue, then implement > an OrderConsumer to pull messages from these queues then perform merge sort, > finally deliver these ordered messages to users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)