Skip to content
killme2008 edited this page Apr 13, 2012 · 4 revisions

#通讯协议 Meta是通讯是走TCP长连接,它的的协议是基于文本行的协议,类似memcached的文本协议。通用的协议格式如下

command params opaque\r\n
body

其中command为协议命令,params为参数列表,而opaque为协议的自增序列号,用于请求和应答的映射。客户端发送协议的时候需要自增此序列号,而服务端将拷贝来自客户端的序列号并作为应答的序列号返回,客户端可根据应答的序列号将应答和请求对应起来。body为协议体,可选,在协议头里需要必须有字段指明body长度。

#详细协议介绍

##put

put topic partition value-length flag [transactionKey]

发送消息协议,topic为发送的消息主题,partition为发送的目的分区,value-length为发送的消息体长度,flag为消息标识位,transactionKey为事务标识符,可选。示范:

put meta-test 0 5 0 1\r\nhello

##get

get	topic group partition offset maxSize

消费者拉取消息协议,topic为拉取的消息主题,group为消费者分组名称,partition为拉取的目的分区,offset为拉取的起始偏移量,maxSize为本次拉取的最大数据量大小。示范:

get meta-test example 0 1024 512 1\r\n

##data

data total-length	

get请求返回的应答,total-length返回的数据长度。示范: data 5 1\r\nhello

##result

result code length	

通用应答协议,如返回请求结果。code为应答状态码,采用与HTTP应答状态码一样的语义。length为协议体长度,示范:

result 200 0 1\r\n

##offset

offset topic group partition offset	

查询离某个offset的最近有效的offset,topic为查询的消息主题,group为消费者分组名称,partition为查询的分区,offset为查询的offset,示范:

offset meta-test example 0 1024 1\r\n

##stats

stats [item]	

查询服务器的统计情况,item为查询的项目名称,如realtime(实时统计),具体的某个topic等,可以为空。示范:

stats 1\r\n
Clone this wiki locally