基本概念
基础介绍
exchange:用于分发信息,有direct、fanout、topic、headers;
binding:exchange、queue之间的虚拟连接,由一个或者多个routing key组成;
queues:用来暂存消息,供consumer消费;
事件通知event notification
定义:服务1将message发送到broker节点暂存,服务2持续监听某类消息,主动获取。
举例:计量服务ceilometer监听消息总线,获取其他服务的事件,并做相应处理,以此实现计量与监控的功能;
Remote Procedure Call
openstack的内部组件通信采用了RPC(远程过程调用)技术,并且该技术提供了两种调用方法:异步执行远程方法cast和同步执行远程方法call,这两种调用方法都会被使用。
异步执行远程方法rpc.cast:当调用一个远程方法不需要立即获取结果,或者调用过程可能会比较耗时,不希望阻塞当前进程时,可以使用cast方法;
同步执行远程方法rpc.call:当调用一个远程方法需要立即获取结果,或者希望确保远程方法执行完毕后再继续当前进程时,可以使用call方法;
消息传递过程通过rabbitmq统一协调管理;