1.远程过程调用(RPC Remote Procedure Call)
一个服务进程调用其他远程服务进程的方法,包含Call和Cast方法
call主要是通过同步执行,调用者会被阻塞,直到结果返回
cast主要是异步执行,不会立即返回结果,页不阻塞调用者
2.事件通知(Event Notification)
某个服务进程可以把通知发送到消息总线上,消息总线上的进程可以获得该事件并处理,处理的结果不会返回事件发送者
2.openstack的消息总线主要是高级消息队列协议(AMQP)
这个一个异步的协议规范
主要包含Producer,Exchange,Queue,Consumer这个几个对象
发送的消息包含一个routing key,每一个Queue对象包含了binding key
exchange是会对Queue中的binding key查询,如果查询的binding key 和 消息中的routing key 相同,该消息被转发给Queue对象
3.常用的消息总线
RabbitMQ
ZeroMQ