Your Linux Data Center Experts

The Spread Toolkit is a distributed message bus. It's been something I've wanted to get some experience with, because it seems like it could be useful for many things in today's distributed environments. However, the overviews and documentation on the site didn't really give a good, quick, overview of what exactly it does.

Read on for a quick overview of what Spread Toolkit does and how to use it.

In particular, one of the questions I had was whether it queued up messages for later delivery if a node was unreachable. In short, it does not…

Spread is really more like a conference call. You have the spread daemon running on many machines, possibly in multiple locations. Then applications can attach to those spread daemons and subscribe to groups. Messages are sent to a group, and everyone who is subscribed gets that message. If you disconnect and later reconnect, you don't see any messages that were sent while you were disconnected.

Spread includes a number of different options for specifying your requirements for reliability and ordering, all the way from no guarantees to guaranteeing ordering of messages.

So it's very much like a message bus, across machines and across networks. The applications would need to implement message queueing and re-delivery if that is required.

Spread can be very simply tested by configuring the spread daemon on each of the machines you'd like to participate (“/etc/spread/spread.conf” on my Maverick test machines, and list each of the participants in a segment):

Spread_Segment  10.1.5.255:4803 {
        test1           10.1.5.21
        test2           10.1.5.22
        test3           10.1.5.23
        test4           10.1.5.24
}

Then you can test using the “spuser” command-line program. Run “spuser -u test”, probably running a few instances on several machines. Then you can run “j foo” to join the “foo” group, and “s foo” to send a message to that group. Sending the message from one instance should cause it to be received by any processes that have joined that group.

So, conceptually very simple. Very much like an IRC for programs. :-)

comments powered by Disqus

Join our other satisfied clients. Contact us today.