Add functionality to define different Message and Notification destination
Sometime,huge notification messages will effect the rabbitMQ cluster's performance.This commit adds functionality do define different Message and Notification destination. Closes-Bug: #1734823 Change-Id: I2ef4d008c9ca91a03d8c7e1380e0188bf6792595
This commit is contained in:
parent
ccb6752f69
commit
1dcdf38bc2
@ -29,6 +29,34 @@ control_exchange = trove
|
|||||||
[database]
|
[database]
|
||||||
connection = mysql+pymysql://root:e1a2c042c828d3566d0a@localhost/trove
|
connection = mysql+pymysql://root:e1a2c042c828d3566d0a@localhost/trove
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# The Driver(s) to handle sending notifications. Possible
|
||||||
|
# values are messaging, messagingv2, routing, log, test, noop
|
||||||
|
# (multi valued)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_driver
|
||||||
|
#driver =
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use for
|
||||||
|
# notifications. If not set, we fall back to the same
|
||||||
|
# configuration used for RPC. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_transport_url
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_topics
|
||||||
|
#topics = notifications
|
||||||
|
|
||||||
|
# The maximum number of attempts to re-send a notification
|
||||||
|
# message which failed to be delivered due to a recoverable
|
||||||
|
# error. 0 - No retry, -1 - indefinite (integer value)
|
||||||
|
#retry = -1
|
||||||
|
|
||||||
[oslo_messaging_rabbit]
|
[oslo_messaging_rabbit]
|
||||||
# The RabbitMQ broker address where a single node is used. (string value)
|
# The RabbitMQ broker address where a single node is used. (string value)
|
||||||
# Deprecated group/name - [DEFAULT]/rabbit_host
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
@ -82,6 +82,34 @@ log_config_append = /etc/trove/trove-logging-guestagent.conf
|
|||||||
# If False doesn't trace SQL requests.
|
# If False doesn't trace SQL requests.
|
||||||
#trace_sqlalchemy = True
|
#trace_sqlalchemy = True
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# The Driver(s) to handle sending notifications. Possible
|
||||||
|
# values are messaging, messagingv2, routing, log, test, noop
|
||||||
|
# (multi valued)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_driver
|
||||||
|
#driver =
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use for
|
||||||
|
# notifications. If not set, we fall back to the same
|
||||||
|
# configuration used for RPC. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_transport_url
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_topics
|
||||||
|
#topics = notifications
|
||||||
|
|
||||||
|
# The maximum number of attempts to re-send a notification
|
||||||
|
# message which failed to be delivered due to a recoverable
|
||||||
|
# error. 0 - No retry, -1 - indefinite (integer value)
|
||||||
|
#retry = -1
|
||||||
|
|
||||||
[oslo_messaging_rabbit]
|
[oslo_messaging_rabbit]
|
||||||
# The RabbitMQ broker address where a single node is used. (string value)
|
# The RabbitMQ broker address where a single node is used. (string value)
|
||||||
# Deprecated group/name - [DEFAULT]/rabbit_host
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
@ -185,6 +185,34 @@ idle_timeout = 3600
|
|||||||
# If False doesn't trace SQL requests.
|
# If False doesn't trace SQL requests.
|
||||||
#trace_sqlalchemy = True
|
#trace_sqlalchemy = True
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# The Driver(s) to handle sending notifications. Possible
|
||||||
|
# values are messaging, messagingv2, routing, log, test, noop
|
||||||
|
# (multi valued)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_driver
|
||||||
|
#driver =
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use for
|
||||||
|
# notifications. If not set, we fall back to the same
|
||||||
|
# configuration used for RPC. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_transport_url
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_topics
|
||||||
|
#topics = notifications
|
||||||
|
|
||||||
|
# The maximum number of attempts to re-send a notification
|
||||||
|
# message which failed to be delivered due to a recoverable
|
||||||
|
# error. 0 - No retry, -1 - indefinite (integer value)
|
||||||
|
#retry = -1
|
||||||
|
|
||||||
[oslo_messaging_rabbit]
|
[oslo_messaging_rabbit]
|
||||||
# The RabbitMQ broker address where a single node is used. (string value)
|
# The RabbitMQ broker address where a single node is used. (string value)
|
||||||
# Deprecated group/name - [DEFAULT]/rabbit_host
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
@ -179,6 +179,34 @@ idle_timeout = 3600
|
|||||||
#optional:
|
#optional:
|
||||||
#ca_file = /path/to/ca_file
|
#ca_file = /path/to/ca_file
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# The Driver(s) to handle sending notifications. Possible
|
||||||
|
# values are messaging, messagingv2, routing, log, test, noop
|
||||||
|
# (multi valued)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_driver
|
||||||
|
#driver =
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use for
|
||||||
|
# notifications. If not set, we fall back to the same
|
||||||
|
# configuration used for RPC. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_transport_url
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
# Deprecated group/name - [DEFAULT]/notification_topics
|
||||||
|
#topics = notifications
|
||||||
|
|
||||||
|
# The maximum number of attempts to re-send a notification
|
||||||
|
# message which failed to be delivered due to a recoverable
|
||||||
|
# error. 0 - No retry, -1 - indefinite (integer value)
|
||||||
|
#retry = -1
|
||||||
|
|
||||||
[oslo_messaging_rabbit]
|
[oslo_messaging_rabbit]
|
||||||
# The RabbitMQ broker address where a single node is used. (string value)
|
# The RabbitMQ broker address where a single node is used. (string value)
|
||||||
# Deprecated group/name - [DEFAULT]/rabbit_host
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
16
trove/rpc.py
16
trove/rpc.py
@ -39,6 +39,7 @@ from trove.common.rpc import serializer as sz
|
|||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
TRANSPORT = None
|
TRANSPORT = None
|
||||||
|
NOTIFICATION_TRANSPORT = None
|
||||||
NOTIFIER = None
|
NOTIFIER = None
|
||||||
|
|
||||||
ALLOWED_EXMODS = [
|
ALLOWED_EXMODS = [
|
||||||
@ -49,22 +50,29 @@ EXTRA_EXMODS = []
|
|||||||
|
|
||||||
|
|
||||||
def init(conf):
|
def init(conf):
|
||||||
global TRANSPORT, NOTIFIER
|
global TRANSPORT, NOTIFICATION_TRANSPORT, NOTIFIER
|
||||||
exmods = get_allowed_exmods()
|
exmods = get_allowed_exmods()
|
||||||
TRANSPORT = messaging.get_rpc_transport(conf,
|
TRANSPORT = messaging.get_rpc_transport(conf,
|
||||||
allowed_remote_exmods=exmods)
|
allowed_remote_exmods=exmods)
|
||||||
|
|
||||||
|
NOTIFICATION_TRANSPORT = messaging.get_notification_transport(
|
||||||
|
conf,
|
||||||
|
allowed_remote_exmods=exmods)
|
||||||
|
|
||||||
serializer = sz.TroveRequestContextSerializer(
|
serializer = sz.TroveRequestContextSerializer(
|
||||||
messaging.JsonPayloadSerializer())
|
messaging.JsonPayloadSerializer())
|
||||||
NOTIFIER = messaging.Notifier(TRANSPORT, serializer=serializer)
|
NOTIFIER = messaging.Notifier(NOTIFICATION_TRANSPORT,
|
||||||
|
serializer=serializer)
|
||||||
|
|
||||||
|
|
||||||
def cleanup():
|
def cleanup():
|
||||||
global TRANSPORT, NOTIFIER
|
global TRANSPORT, NOTIFICATION_TRANSPORT, NOTIFIER
|
||||||
assert TRANSPORT is not None
|
assert TRANSPORT is not None
|
||||||
|
assert NOTIFICATION_TRANSPORT is not None
|
||||||
assert NOTIFIER is not None
|
assert NOTIFIER is not None
|
||||||
TRANSPORT.cleanup()
|
TRANSPORT.cleanup()
|
||||||
TRANSPORT = NOTIFIER = None
|
NOTIFICATION_TRANSPORT.cleanup()
|
||||||
|
TRANSPORT = NOTIFICATION_TRANSPORT = NOTIFIER = None
|
||||||
|
|
||||||
|
|
||||||
def set_defaults(control_exchange):
|
def set_defaults(control_exchange):
|
||||||
|
Loading…
Reference in New Issue
Block a user