I wrote ocamlmq because I could not get ActiveMQ or RabbitMQ (+ its STOMP adapter) to work the way I wanted . The problems I ran into include:
excessive memory footprint ( ActiveMQ and RabbitMQ), both at startup (e.g. >120MB for ActiveMQ vs. <3 MB for ocamlmq) and as new queues are created or new topic subscriptions are added
bad performance with ActiveMQ's scalable (to thousands of queues) storage backends ( KahaDB, JDBC)
bad performance in RabbitMQ…
Lightning talk is finished. Title: " ActiveMQ and ActiveMessaging: I've Experienced the Pain So You Don't Have To" # railsconf
Yeah, I got up, worked out, ate eggs wrapped in cheese and bacon, showered and then realized I had gotten up an hour early by mistake. Opportunity! So I worked on the lightning talk. To be honest, I was kinda pissed at myself for the boneheaded alarm mishandling but if it doesn't make you money or happy, you need to let it go.
Don't …
Apache ActiveMQ
- ActiveMQ is an open source message broker in Java
- Ruby client: ActiveMessaging can be used to access ActiveMQ
Beanstalkd
- written by Philotic, Inc. to improve the response time of a Facebook application
- in-memory workqueue service mostly written in C
- Ruby client: async-observer or beanstalk-client-ruby
- Docu: http://nubyonrails.com/articles/about-this-blog-beanstalk-messaging-queue
Amazon SQS
- Amazon Simple …
…mediate the connection. Kaazing Gateway already provides adapters for STOMP and Apache ActiveMQ, and you could also implement your own JavaScript wrappers for others. And if a Java based WebSocket server is not for you, Ruby EventMachine also allows us to build a very simple event-driven WebSocket server in just a few lines of code:
require 'em-websocket' EventMachine::WebSocket . start ( :host => "0.0.0.0" , :port => …
In case anyone stumbles here looking for the notes and examples from my Open Source Bridge talk, here they are:
Note: this is a ~30MB download, since it contains (amongst other things) a full copy of JRuby 1.3.1 and the ActiveMQ runtime. The actual presentation and example code are very light.
You can also just view the talk slides , though they aren't terribly informative without the code.
Update: video is anchor_ …
…reading we've found really interesting thing. There is a "feature" added in the recent ActiveMQ release (5.X) called " flow control ", which is used by ActiveMQ core to slow down too fast producers when consumers lag or just aren't as fast as ActiveMQ wants them to be. This results in unpredictable producers stalls and all kinds of weird problems.
If you're experiencing the same problems, you could try to add the following to your activemq.xml …