oslo.messaging/oslo_messaging/tests
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
..
drivers rabbit: heartbeat implementation 2015-03-18 15:15:33 +01:00
executors Add a new aioeventlet executor 2015-02-05 12:11:37 +01:00
functional Properly distinguish between server index zero and no server 2015-02-23 16:01:38 -05:00
notify Merge "Implements notification-dispatcher-filter" 2015-02-04 02:40:06 +00:00
rpc Add support for multiple namespaces in Targets 2015-03-12 16:07:51 -04:00
__init__.py fix qpid test issue with eventlet monkey patching 2015-01-15 15:00:41 +01:00
test_amqp_driver.py Remove unnecessary log messages from amqp1 unit tests 2015-02-06 08:45:46 -05:00
test_exception_serialization.py Update Oslo imports to remove namespace package 2015-01-21 21:09:33 -05:00
test_expected_exceptions.py Move files out of the namespace package 2015-01-12 12:50:41 -05:00
test_opts.py Move each drivers options into its own group 2015-02-02 10:58:54 +01:00
test_target.py Move files out of the namespace package 2015-01-12 12:50:41 -05:00
test_transport.py Update Oslo imports to remove namespace package 2015-01-21 21:09:33 -05:00
test_urls.py Move files out of the namespace package 2015-01-12 12:50:41 -05:00
test_utils.py Declare DirectPublisher exchanges with passive=True 2015-01-27 11:07:51 +01:00
utils.py Update Oslo imports to remove namespace package 2015-01-21 21:09:33 -05:00