OpenStack RPC Queues

说明

文本分析的 OpenStack 版本为 Kilo (2015.1.0),不过社区关于 RPC 架构的设计十分经典,在四年多的时间内基本没有变化,所以有必要在此记录。

表格有四列:

  • Exchange: 队列的 Exchange,后缀是 fanout 的 Exchange 为 fanout 类型;标记(topic)的为 topic 类型。
  • Queue: 队列的名字。
  • Routing Key: 队列的 Routing Key,一般和队列名一样。但是 fanout 的 routing key 比较特殊,为去掉 fanout_{uuid} 后的字符串。
  • Service: 申明此队列的服务,一般是 RPC 的服务端。

Nova Queues

Exchange Queue Routing Key Service
nova (topic) cert cert nova-cert
nova (topic) cert.{host} cert.{host} nova-cert
nova (topic) compute compute nova-compute
nova (topic) compute.{host} compute.{host} nova-compute
nova (topic) conductor conductor nova-conductor
nova (topic) conductor.{host} conductor.{host} nova-conductor
nova (topic) consoleauth consoleauth nova-consoleauth
nova (topic) consoleauth.{host} consoleauth.{host} nova-consoleauth
nova (topic) scheduler scheduler nova-scheduler
nova (topic) scheduler.{host} scheduler.{host} nova-scheduler
cert_fanout cert_fanout_{uuid} cert nova-cert
compute_fanout compute_fanout_{uuid} compute nova-compute
conductor_fanout conductor_fanout_{uuid} conductor nova-conductor
consoleauth_fanout consoleauth_fanout_{uuid} consoleauth nova-consoleauth
scheduler_fanout scheduler_fanout_{uuid} scheduler nova-scheduler

Cinder Queues

对的,你没有看错,cinder 的 Exchange 就是霸气的叫 openstack。

Exchange Queue Routing Key Service
openstack (topic) cinder-scheduler cinder-scheduler cinder-scheduler
openstack (topic) cinder-scheduler.{host} cinder-scheduler.{host} cinder-scheduler
openstack (topic) cinder-volume cinder-volume cinder-volume
openstack (topic) cinder-volume.{host} cinder-volume.{host} cinder-volume
cinder-scheduler_fanout cinder-scheduler_fanout_{uuid} cinder-scheduler cinder-scheduler
cinder-volume_fanout cinder-volume_fanout_{uuid} cinder-volume cinder-volume

Neutron Queues

Exchange Queue Routing Key Service
neutron (topic) dhcp_agent dhcp_agent neutron-dhcp-agent
neutron (topic) dhcp_agent.{host} dhcp_agent.{host} neutron-dhcp-agent
neutron (topic) q-plugin q-plugin neutron-server
neutron (topic) q-plugin.{host} q-plugin.{host} neutron-server
neutron (topic) q-l3-plugin q-l3-plugin neutron-server
neutron (topic) q-l3-plugin.{host} q-l3-plugin.{host} neutron-server
neutron (topic) l3_agent l3_agent neutron-l3-agent
neutron (topic) l3_agent.{host} l3_agent.{host} neutron-l3-agent
neutron (topic) q-agent-notifier-dvr-update q-agent-notifier-dvr-update neutron-ovs-agent
neutron (topic) q-agent-notifier-dvr-update.{host} q-agent-notifier-dvr-update.{host} neutron-ovs-agent
neutron (topic) q-agent-notifier-port-delete q-agent-notifier-port-delete neutron-ovs-agent
neutron (topic) q-agent-notifier-port-delete.{host} q-agent-notifier-port-delete.{host} neutron-ovs-agent
neutron (topic) q-agent-notifier-port-update q-agent-notifier-port-update neutron-ovs-agent
neutron (topic) q-agent-notifier-port-update.{host} q-agent-notifier-port-update.{host} neutron-ovs-agent
neutron (topic) q-agent-notifier-security_group-update q-agent-notifier-security_group-update neutron-ovs-agent
neutron (topic) q-agent-notifier-security_group-update.{host} q-agent-notifier-security_group-update.{host} neutron-ovs-agent
neutron (topic) q-agent-notifier-tunnel-delete q-agent-notifier-tunnel-delete neutron-ovs-agent
neutron (topic) q-agent-notifier-tunnel-delete.{host} q-agent-notifier-tunnel-delete.{host} neutron-ovs-agent
neutron (topic) q-agent-notifier-tunnel-update q-agent-notifier-tunnel-update neutron-ovs-agent
neutron (topic) q-agent-notifier-tunnel-update.{host} q-agent-notifier-tunnel-update.{host} neutron-ovs-agent
dhcp_agent_fanout dhcp_agent_fanout_{uuid} dhcp_agent neutron-dhcp-agent
l3_agent_fanout l3_agent_fanout_{uuid} l3_agent neutron-l3-agent
q-l3-plugin_fanout q-l3-plugin_fanout_{uuid} q-l3-plugin neutron-server
q-plugin_fanout q-plugin_fanout_{uuid} q-plugin neutron-server
q-agent-notifier-dvr-update_fanout q-agent-notifier-dvr-update_fanout_{uuid} q-agent-notifier-dvr-update neutron-ovs-agent
q-agent-notifier-port-delete_fanout q-agent-notifier-port-delete_fanout_{uuid} q-agent-notifier-port-delete neutron-ovs-agent
q-agent-notifier-port-update_fanout q-agent-notifier-port-update_fanout_{uuid} q-agent-notifier-port-update neutron-ovs-agent
q-agent-notifier-security_group-update_fanout q-agent-notifier-security_group-update_fanout_{uuid} q-agent-notifier-security_group-update neutron-ovs-agent
q-agent-notifier-tunnel-delete_fanout q-agent-notifier-tunnel-delete_fanout_{uuid} q-agent-notifier-tunnel-delete neutron-ovs-agent
q-agent-notifier-tunnel-update_fanout q-agent-notifier-tunnel-update_fanout_{uuid} q-agent-notifier-tunnel-update neutron-ovs-agent

2 条思考于 “OpenStack RPC Queues

  1. pengtao

    你好,我有个问题想问下,当neutron-openvswitch-agent 节点重启的时候,Neutron发送的fanout消息是会漏掉了对吧,然后也就没办法配置相应的流表和设备了

    1. gtt116 文章作者

      neutron 实现我不怎么熟悉,不过我知道 neutron-openvswitch-agent 刚启动的时候会去 neutron-server 那边把全部信息一起取回来的。也就是虽然前一次漏掉了,但重启后还是会刷回来。

发表评论

电子邮件地址不会被公开。 必填项已用*标注