2

I would like to learn more about programming messaging applications and using message queues. Things like qpid, Amazon Queues, etc. Can you point me to some apps (preferably C++, open source if possible) so I can learn more.

Also, can you tell me the general guidelines one would use to decide whether ot not to use message queues. I am interesting in leanring about this just for the 'coolness' factor but I think it might be beneficial for me in the future.

Rodney
  • 23
  • 1
  • 3

3 Answers3

5

RabbitMQ is the Message Queue that I am the most familiar with. It implements AMQP just like qpid. AMQP is a widely accepted wire protocol and there are many client libraries available such as C++, Java, Ruby, .Net, Python, etc.

If the distributed service is flaky and is not always online, you can use a rock solid message queue to persist the messages. The messages are then delivered when the distributed service comes back to life.

If the distributed service has low latency and the client service generates more requests than the distributed service can handle, a queue will hold the messages until the distributed service can process them while allowing the client to process uninhibited.

If requests need to be distributed to multiple services, an exchange will take care the important details such as delivering the message to each distributed service once and only once.

I don't recommend using message queues when you need a synchronous call to a remote service. Message queues are inherently asynchronous.

Travis Stevens
  • 2,198
  • 2
  • 17
  • 25
0

Not a programming language, but a useful tool when you're programming with message queues is Promela/Spin. It's designed to identify deadlocks or other concurrency issues that might arise from a distributed system. Certainly looking at the sort of issues it can help identify will give you an idea of the sort of problems you might encounter.

Flynn1179
  • 11,925
  • 6
  • 38
  • 74
0

Not sure what its written in but Eclipse IDE seems to have some sort of message queue system. Whenever its busy (read, lagging... alot) you see a message saying "performing blank before user operation". Eclipse is Open Source. I am not sure where to download the source code.. but I believe it comes with the installation - http://www.eclipse.org/downloads/. latest is 3.6 (helios)

Tom Fobear
  • 6,729
  • 7
  • 42
  • 74