Bunny: v0.9.0.pre8 Release

Once again another preview release – 0.9.0.pre8 – was made available some days ago. The most notable changes in this release were -

  1. Some stability improvements
  2. Automatic connection recovery can be disabled
  3. Removal of timeout control for publishing

You can see a full list of changes in the Change Log on GitHub.

Your input is important to us, so please give it a try and let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.

Bunny: v0.9.0.pre7 Release

Another preview release – 0.9.0.pre7 – was made available a while ago. The most notable changes in this release were -

  1. Addition of Bunny::Channel#on_error method
  2. Fixed framing of larger messages with Unicode characters
  3. Efficiency improvements
  4. Bunny::Channel#basic_publish now supports :persistent and :delivery_mode options
  5. Addition of Bunny::Channel#nacked_set
  6. Single-threaded network activity mode

You can see a full list of changes in the Change Log on GitHub.

Your input is important to us, so if you give it a try then let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.

Bunny: v0.9.0.pre6 Release

The elves have been hard at work and the next preview release – 0.9.0.pre6 – was made available yesterday. The most notable changes in this release are -

  1. Automatic network failure recovery
  2. Enhancements and bug fixes applied to publisher confirms

You can see a full list of changes in the Change Log on GitHub.

Your input is important to us, so please give it a try and let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.

Bunny: v0.9.0.pre5 Release

As we draw closer to a final release, the next preview release – 0.9.0.pre5 – was made available today. The notable changes in this release are -

  1. Channel error information is now properly reset when a channel is (re)opened
  2. Global prefetch is not implemented in RabbitMQ, so Bunny::Session#prefetch
    has been removed from the API
  3. Default value of Bunny::Consumer noack argument changed from false to true

You can see a full list of changes in the Change Log on GitHub.

Please give it a try and let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.

Bunny: v0.9.0.pre4 Release

The next preview release – 0.9.0.pre4 – was made available recently. The notable changes in this release are -

  1. Fixes to heartbeat support
  2. Race condition affecting consumers addressed
  3. Support for alternative authentication mechanisms

You can get some more detail about these changes from the Change Log on GitHub.

As usual, kick the tyres please and let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.

RabbitMQ: Create a Cluster On a Single Machine

Sometimes it’s useful to be able to play around with a simple RabbitMQ cluster on a single machine. After trying to follow the instructions in the RabbitMQ Clustering Guide and running into a couple of issues, I ended up doing the following to get a working two node cluster up and running on my laptop.

The machine used was a laptop running Ubuntu 12.04.1 LTS (32-bit), RabbitMQ 3.0.1 and Erlang R14B04. These are the steps I took using the Terminal -

  1. To run commands as root enter -

    sudo -i

  2. Make sure that you don’t have a /etc/rabbitmq/rabbitmq.config file because it caused errors for me by applying the settings from the file to both nodes that I started irrespective of command line arguments. I renamed my rabbitmq.config file to rabbitmq.config.bak.
  3. Start the first RabbitMQ instance if it is not already running. In my case it is the default instance named ‘rabbit‘ -

    invoke-rc.d rabbitmq-server start

    Output -

    * Starting message broker rabbitmq-server
  4. Start a second RabbitMQ instance called ‘hare‘ on port 5673 as a background task. I have the Management plugin installed so also set the port for that -

    RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=hare rabbitmq-server &

    Output -

    Status of node 'hare@mymachine' ...
    [{pid,14524},
     {running_applications,
         ...

    Start up information was displayed but my prompt did not return, so I just pressed Ctrl-C to get the prompt back.

  5. The hare instance should be running -

    rabbitmqctl -n hare status

    Output -

    Status of node 'hare@mymachine' ...
    [{pid,14524},
     {running_applications,
         [{rabbitmq_management,"RabbitMQ Management Console","3.0.1"},
          ...
  6. Stop hare RabbitMQ application but leave Erlang node running -

    rabbitmqctl -n hare stop_app

    Output -

    Stopping node 'hare@mymachine' ...
    ...done.
  7. Reset hare -

    rabbitmqctl -n hare reset

    Output -

    Resetting node 'hare@mymachine' ...
    ...done.
  8. Join hare to cluster -

    rabbitmqctl -n hare join_cluster rabbit@`hostname -s`

    Output -

    Clustering node 'hare@mymachine' with 'rabbit@mymachine' ...
    ...done.
  9. Restart the hare RabbitMQ application

    rabbitmqctl -n hare start_app

    Output -

    Starting node 'hare@mymachine' ...
    ** Found 0 name clashes in code paths
    ...
  10. Check the status of the cluster -

    rabbitmqctl cluster_status

    Output -

    Cluster status of node 'rabbit@mymachine' ...
    [{nodes,[{disc,['hare@mymachine','rabbit@mymachine']}]},
     {running_nodes,['hare@mymachine','rabbit@mymachine']},
     {partitions,[]}]
    ...done.

That’s it! Now you can play with your shiny new cluster. Take a look at the RabbitMQ Clustering Guide for further information.

Bunny: v0.9.0.pre3 Release

Yes, Bunny development is moving on apace. The next preview release – 0.9.0.pre3 – is available. The notable changes in this release are -

  1. basic.nack
  2. exchange-to-exchange bindings
  3. consumer cancellation notifications
  4. publisher confirms

You can get some more detail about these changes from the Change Log on GitHub.

As usual, kick the tyres please and let us know if anything doesn’t work for you. You can also let us know what works well if you like.

gem install bunny --pre

will get you the latest preview release and you can post your comments to the Google Group.