OpenStack library for messaging
Go to file
Mehdi Abaakouk b9e134d7e9 rabbit: heartbeat implementation
AMQP offers a heartbeat feature to ensure that the application layer
promptly finds out about disrupted connections (and also completely
unresponsive peers). If the client requests heartbeats on connection, rabbit
server will regularly send messages to each connections with the expectation of
a response.

To acheive this, each driver connection object spawn a thread that
send/retrieve heartbeat packets exchanged between the server and the
client.

To protect the concurrency access to the kombu connection between the
driver and this thread use a lock that always prioritize the
heartbeat thread. So when the heartbeat thread wakes up it will acquire the
lock quickly, to ensure we have no heartbeat starvation when the driver
sends a lot of messages.

Also when we are polling the broker, the lock can be held for a long
time by the 'consume' method, so this one does the heartbeat stuffs itself.

DocImpact: 2 new configuration options for Rabbit driver

Co-Authored-By: Oleksii Zamiatin <ozamiatin@mirantis.com>
Co-Authored-By: Ilya Pekelny <ipekelny@mirantis.com>

Related-Bug: #1371723
Closes-Bug: #856764

Change-Id: I1d3a635f3853bc13ffc14034468f1ac6262c11a3
2015-03-18 15:15:33 +01:00
doc/source Add FAQ entry for notifier configuration 2015-02-17 10:21:30 -05:00
etc Routing notifier 2014-01-15 04:08:18 +00:00
oslo Expose _impl_test for designate 2015-01-26 21:55:20 +00:00
oslo.messaging/locale Imported Translations from Transifex 2015-02-02 06:12:37 +00:00
oslo_messaging rabbit: heartbeat implementation 2015-03-18 15:15:33 +01:00
tests rabbit: heartbeat implementation 2015-03-18 15:15:33 +01:00
tools tools: add simulator script 2015-03-11 17:36:32 +01:00
.coveragerc Fix coverage report generation 2015-03-12 16:38:51 -07:00
.gitignore Ignore any egg and egg-info directories 2014-02-05 09:32:25 -08:00
.gitreview Add oslo.messaging project infrastructure 2013-06-15 08:43:50 +01:00
.testr.conf Allows to overriding oslotest environ var 2014-11-19 11:28:02 +01:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:39 +00:00
LICENSE Add oslo.messaging project infrastructure 2013-06-15 08:43:50 +01:00
MANIFEST.in Add oslo.messaging project infrastructure 2013-06-15 08:43:50 +01:00
README.rst Update README.rst format to match expectations 2015-01-27 13:52:20 -05:00
amqp1-requirements.txt amqp1: fix functional tests deps 2015-02-11 16:25:04 +00:00
babel.cfg Setup for translation 2014-06-05 22:48:44 +02:00
openstack-common.conf Deprecates the localcontext API 2015-03-11 16:14:50 +01:00
requirements-py3.txt Update to oslo.context 2015-03-11 10:09:51 +01:00
requirements.txt Update to oslo.context 2015-03-11 10:09:51 +01:00
setup.cfg Add a new aioeventlet executor 2015-02-05 12:11:37 +01:00
setup.py Updated from global requirements 2014-04-30 02:45:47 +00:00
test-requirements-py3.txt Upgrade to hacking 0.10 2015-01-14 09:04:22 +01:00
test-requirements.txt Upgrade to hacking 0.10 2015-01-14 09:04:22 +01:00
tox.ini Merge "Fix coverage report generation" 2015-03-16 01:46:07 +00:00

README.rst

Oslo Messaging Library

The Oslo messaging API supports RPC and notifications over a number of different messaging transports.