On 07/25/2011 10:03 AM, Gordon Sim wrote:
On 07/25/2011 02:46 PM, Alan Conway wrote:
Response in line
[snip]
Ah, yes - sorry. The lifetime of the group's state depends on the type
of "Policy" that is being used (see below). For the "Sequenced
Consumers" policy - which is what I was thinking of in my last reply -
the broker doesn't need to maintain state across all messages of the
group. With that policy, the state can be dropped once there are no
more messages for that group present in the broker.
Again I don't get that. You're putting group boundaries at unpredictable
arbitrary points depending on relative speed of producer/consumer. The
producer may send the first N messages of a group containing N+M
messages, then the consumer consumes the first N messages. Now the queue
is empty so the next M messages are considered a new group, where N is
impossibly to predict in advance. So you randomly cut up the groups.
Cutting up the groups doesn't matter though. The requirement here is only that
the messages be processed in order.
Of course.
We only need to hold state regarding groups in order to prevent delivery of
messages to one consumer when earlier messages of the same group have been given
to another consumer who has not yet indicated that they have been processed.
Right, and for those groups we can use the termination of the consumer as the
end of the group. It all fits.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]