[Spread-users] Just one question of Spread

John Schultz jschultz at spreadconcepts.com
Thu Apr 9 13:15:19 EDT 2009

Spread is not set up out-of-the-box to function in the store and
forward client-server model you seem to want.  However, I can think
of several different ways to achieve something pretty close to what
you want.  Remember though, that Spread does no form of message

In Spread, all members of a group get all messages sent to that
group.  So, you could do round robin processing where each group
member processes every ith message, counting from the last membership
change, while discarding the rest.  A given member is assigned their
"i" by their position in the membership list.  This assumes that the
cost of processing different messages are roughly the same.  If some
messages can "cost" much, much more than others, then you may want a
different approach.

To get closer to what you want, you could write a little queueing
server that receives from a Spread group while accepting client
connections. Then as messages come in it can dish them out to clients
that have registered a want for them.

The Spread server itself will allow a client to have about 1000
ephemeral messages in its memory before it will kick the client from
the server and drop messages destined for them.  If you read them out
of the Spread server, then your queue could be as deep as you want it
to be.


John Lane Schultz
Spread Concepts LLC
Phn: 443 838 2200 
Fax: 301 560 8875

Thursday, April 9, 2009, 12:19:16 PM, you wrote:

> Hi John,
> One more question  
> The messaging model that I need is a simple FIFO queue with some
> writers and some readers with no notification sent to all readers
> (subsribers), but instead with readers polling the queue. Writers
> put messages to the queue, readers polls the queue; each reader
> polls the queue and takes each time the single message deleting it
> from the queue. Is this model supported in spread? What is the max
> size (depth) of the queue - how many messages it can keep?
> Thanks in advance,
> Peter

> On Tue, Mar 31, 2009 at 1:16 AM, John Schultz
> <jschultz at spreadconcepts.com> wrote:
> You can configure Spread to not use multicast and to instead use
> point to point UDP.  Spread cannot be configured to use TCP/IP for
> its communications between daemons.

> To achieve only using UDP, you would simply place each daemon in
> its own Spread_Segment in the configuration file and the segment address can be

> Cheers!
> John

> ---
> John Lane Schultz
> Spread Concepts LLC
> Phn: 443 838 2200 
> Fax: 301 560 8875

> Monday, March 30, 2009, 6:06:54 PM, you wrote:

> P.S. If the configuration mentioned below could work over UDP with
> no multicast, it is also OK. Please, confirm.

> Thanks again,
> Peter

> On Tue, Mar 31, 2009 at 1:00 AM, Peter Weinstein
> <weinstein.peter at gmail.com> wrote:

> Hello,
> My name is Peter Weinstein, I'm looking for fast, small, reliable
> and versatile message queue implementation.
> Spread answers to most of requirements out of the box.
> The major question for me now - could it be configured in a way
> that DOESN'T use multicast, just tcp-unicast (peer-to-peer).
> The environment where I need to deploy it doesn't have multicast.
> Could you, please, clarify?

> -- 
> Thanks & Regards,
> Peter

> -- 
> Regards,
> Peter

More information about the Spread-users mailing list