openstack项目内部各组件之间采用远程通信机制RPC,而RPC采用消息队列来实现进程间的通信,Openstack使用的消息队列协议是AMQP,这是一个异步消息传递使用的应用层协议规范。
1、建立连接,由生产者和消费者创建连接,连接到服务器/代理的物理节点上。
2、建立消息信道,信道建立在连接之上,一个连接可以建立多个信道,生产者连接虚拟主机建立信道,消费者连接到相应的队列上建立信道。
3、发送消息,生产者将消息发送到服务器或代理中的交换器。
4、转发消息,交换器收到消息后,根据一定的路由策略将消息转发到对应的队列。
5、接受消息,消费者监听相应的队列,一旦队列中有可以消费的消息,队列就将消息发送给消费者。
6、消息确认。当消费者完成一条消息的处理后,需要发送一条确认消息给相应的队列。