rabbitmq.proto 5.0 KB

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