A ruby gem used to connect to RabbitMQ.
require 'telemetry/amqp'
Telemetry::AMQP.connect!(username: 'guest', password: 'guest', node: '127.0.0.1')
Telemetry::AMQP.session # => Bunny::Session
Telemetry::AMQP.channel # => Bunny::Channel
You can also initiate multiple connections using the Base
class
rmq = Telemetry::AMQP::Base.new(username: 'guest', vhost: 'custom_vhost')
rmq.session # => Bunny:Session
rmq.channel # => Bunny::Channel
These are the configurable options and their defaults
{
username: 'guest',
password: 'guest',
nodes: ['127.0.0.1'],
port: 5672,
use_ssl: false,
connection_name: '',
automatically_recover: true,
verify_peer: true,
application: 'telemetry::amqp',
app_version: Telemetry::AMQP::VERSION,
connection_name: 'telemetry_amqp:0.1.0'
}
Currently channels within Telemetry::AMQP
use the concurrent-ruby class of Concurrent::ThreadLocalVar
so that we
use a different channel for each Ruby thread automatically. This is per the bunny docs
Parts of the library (most notably Bunny::Channel) are designed to assume they are not shared between threads.