Earlier communication between alarm evaluator service and alarm notifier services was RPC-intensive and increased the way the work queue was used to get better performance,
+ifConf.ipc_protocol = ='RPC':+ SELF.IPC ='RPC'+ Self.rpc_server =Messaging.get_rpc_server (+conf, transport, conf.notifier_rpc_topic, self)+Else:+ SELF.IPC ='Queue'+ target = oslo_messaging. Target (topic=conf.notifier_topic)+ Self.listener =Messaging.get_notification_listener (+transport, [target],+ [Alarmendpoint (self.notifiers)])
The so-called work queue method is to send the results of evaluator as a message payload sent to alarm:
+ Payload = {'Actions': Actions,+'alarm_id': alarm.alarm_id,+'Alarm_name': Alarm.name,+'severity': Alarm.severity,+'previous': Previous,+' Current': Alarm.state,+'reason': six.text_type (reason),+'Reason_data': Reason_data}+ Self.notifier.sample (Self.ctxt,'alarm.update', payload)
Reference: https://review.openstack.org/#/c/247211/
Aodh m version new features-queue between alarm evaluator and alarm notifier