RabbitMQ通信

RabbitMQ的通信:

	rabbitMQ在于核心产品之间进行通信几乎采用的都是RPC模式(远程过程调用),我们使用的大多数的基于WebApi调用就是一种常见的RPC模式,不过不同是的,我们在通常使用WebApi远程调用时,服务器并不会给客户端发出命令,而AMQP规范中,客户端与服务器之前都可以发出命令。
	
	rabbitMQ的会话启动:协议头,这个不是请求也不是命令。客户端发出协议头后,服务端通过Connection.Start命令 相应,客户端再使用Connection.startOk相应RPC请求。他们之前的语言类似于类和方法,类connection,方法start。帧可以认为是传输信息的工具。
	
	AMQP规范了五种类型的帧:协议头帧,方法帧,内容头帧,消息体帧,心跳帧。
	
	协议头用来链接RabbitMQ,方法帧携带的是RPC请求与相应,内容头帧包含一条消息的大小和属性,消息体帧包含消息的内容。心跳帧在客户端与RabbitMQ之前传递,校验双方都可用。
	
	一般我们发送消息使用的是方法帧,内容头帧,消息体帧。方法帧为第一个,可能携带的是交换器,路由键或者其他的参数,第二个为内容帧。需要注意的是帧是有大小的。
	
	 帧的结构:
	方法帧结构

首先是帧的统一组件:帧类型,信道编号,以字节为单位的帧大小;其次是方法帧的有效载荷;最后是统一组件:结束字节标记。
其中有效载荷中分为5个组件:请求类,请求类的方法,交换器名称,路由键值,mandatory标志

mandatory标志告知Rabbitmq必须完成路由消息,否则它应该发送一个Basic.Return帧用于指明消息无法路由。

内容头帧
内容头帧的有效载荷中有:消息体大小,标志值,内容类型,app_id属性,timestamp属性,投递模式。

消息体帧
消息体对于AMQP协议而言是不透明的,且不被Rabbitmq解码、检查或评估。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值