12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- syntax = "proto2";
- package Rabbitmq_proto;
- //Rabbitmq 配置的通道,队列和消费者,
- //注:目前规定
- //接受请求消息:同一子节点所有的请求消息写同一个channel通道编号,queue_durable = 1, queue_auto_delete = 0, consume_no_ack = 0,
- //接受状态消息:同一子节点所有的状态消息写同一个channel通道编号,queue_durable = 0, queue_auto_delete = 1, consume_no_ack = 1,
- message Rabbitmq_channel_queue_consume
- {
- optional int32 channel = 1; //连接通道,必写, 可以相同, 不同的消息队列可以共用同一个连接通道,
- //配合 amqp_basic_qos 和 amqp_basic_ack , 来阻塞这个通道的接受消息
- //请求消息和状态消息必须分别写不同的通道,例如所有的请求都可以写12, 所有的状态都可以写34
- optional string exchange_name = 2; //交换机名称,必写, 可以相同, 不同的消息队列可以共用同一个交换机,
- //配合 routingkey 和 bindingkey , 来分配消息到合适的队列
- //发送队列专属
- optional string routing_key = 3; //发送端的路由键, 交换机分配消息的判断条件
- optional int32 timeout_ms = 4; //发送超时时间, 单位ms, 服务器会自动删除超时的消息, 如果写0,那么就没有超时删除
- //接受队列专属
- optional string binding_key = 5; //接受端的绑定键, 交换机分配消息的判断条件
- optional string queue_name = 6; //队列名称,必写, 不能相同
- optional int32 queue_passive = 7[default = 0]; //是否被动,默认0
- optional int32 queue_durable = 8; //是否持久,必写, 节点代码可以创建临时队列(所有权归节点), 服务器手动创建永久队列(所有权归服务器)
- // 1表示永久队列,当节点死掉,队列在服务器保留,仍然可以接受数据,节点上线后,可以接受掉线期间的所有数据
- // 0表示临时队列,当节点死掉,队列消失,不再接受数据,直到下次恢复正常
- optional int32 queue_exclusive = 9[default = 0]; //是否独立,默认0
- optional int32 queue_auto_delete = 10[default = 0]; //是否自动删除, 固定写0,
- //1表示消息被消费者接受后,就自动删除消息, 当接收端断连后,队列也会删除,
- //0表示消息被消费者接受后,不会自动删除消息, 需要手动ack才会删除消息, 队列不会删除
- //一般情况下设为0,然后让接受者手动删除.
- optional int32 queue_meassage_ttl = 11[default = 0]; //队列配置的扩展参数, x-message-ttl 队列接受消息 的超时时间 (单位毫秒)
- //默认写0, 不配置超时, 一般在状态消息的临时队列写入1000ms
- optional string consume_name = 12; //消费者名称,必写, 不能相同
- optional int32 consume_no_local = 13[default = 0]; //是否非本地, 默认0,表示本地
- optional int32 consume_no_ack = 14[default = 0]; //是否确认应答,默认0,表示接收后需要应答
- //请求消息必须写0, 必须应答之后才能接受下一条
- //状态消息必须写1, 可以无限循环接受,收到的瞬间,服务器就会删除这一条消息
- optional int32 consume_exclusive = 15; //是否独立,默认0
- }
- //Rabbitmq 配置参数
- message Rabbitmq_parameter
- {
- optional string ip = 1; //服务器ip地址, 不带端口
- optional int32 port = 2; //端口,默认5672
- optional string user = 3; //用户名, 默认guest
- optional string password = 4; //密码, 默认guest
- repeated Rabbitmq_channel_queue_consume rabbitmq_reciever_vector= 5; //Rabbitmq 接受的通道,队列和消费者, 多个
- repeated Rabbitmq_channel_queue_consume rabbitmq_sender_request_vector= 6; //Rabbitmq 发送请求的通道
- repeated Rabbitmq_channel_queue_consume rabbitmq_sender_status_vector= 7; //Rabbitmq 发送状态的通道
- //注:rabbitmq的接受是以队列为目标的, 可以同时接受多个队列的消息.
- //注:rabbitmq的发送是以交换机为目标的,我们发送到交换机后,由交换机按照规则,去分配到下面的队列里面
- }
- //Rabbitmq 配置参数 总配置
- message Rabbitmq_parameter_all
- {
- optional Rabbitmq_parameter rabbitmq_parameters=1;
- }
|