structs.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from __future__ import absolute_import
  2. from collections import namedtuple
  3. # SimpleClient Payload Structs - Deprecated
  4. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-MetadataAPI
  5. MetadataRequest = namedtuple("MetadataRequest",
  6. ["topics"])
  7. MetadataResponse = namedtuple("MetadataResponse",
  8. ["brokers", "topics"])
  9. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-ConsumerMetadataRequest
  10. ConsumerMetadataRequest = namedtuple("ConsumerMetadataRequest",
  11. ["groups"])
  12. ConsumerMetadataResponse = namedtuple("ConsumerMetadataResponse",
  13. ["error", "nodeId", "host", "port"])
  14. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-ProduceAPI
  15. ProduceRequestPayload = namedtuple("ProduceRequestPayload",
  16. ["topic", "partition", "messages"])
  17. ProduceResponsePayload = namedtuple("ProduceResponsePayload",
  18. ["topic", "partition", "error", "offset"])
  19. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-FetchAPI
  20. FetchRequestPayload = namedtuple("FetchRequestPayload",
  21. ["topic", "partition", "offset", "max_bytes"])
  22. FetchResponsePayload = namedtuple("FetchResponsePayload",
  23. ["topic", "partition", "error", "highwaterMark", "messages"])
  24. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-OffsetAPI
  25. OffsetRequestPayload = namedtuple("OffsetRequestPayload",
  26. ["topic", "partition", "time", "max_offsets"])
  27. ListOffsetRequestPayload = namedtuple("ListOffsetRequestPayload",
  28. ["topic", "partition", "time"])
  29. OffsetResponsePayload = namedtuple("OffsetResponsePayload",
  30. ["topic", "partition", "error", "offsets"])
  31. ListOffsetResponsePayload = namedtuple("ListOffsetResponsePayload",
  32. ["topic", "partition", "error", "timestamp", "offset"])
  33. # https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-OffsetCommit/FetchAPI
  34. OffsetCommitRequestPayload = namedtuple("OffsetCommitRequestPayload",
  35. ["topic", "partition", "offset", "metadata"])
  36. OffsetCommitResponsePayload = namedtuple("OffsetCommitResponsePayload",
  37. ["topic", "partition", "error"])
  38. OffsetFetchRequestPayload = namedtuple("OffsetFetchRequestPayload",
  39. ["topic", "partition"])
  40. OffsetFetchResponsePayload = namedtuple("OffsetFetchResponsePayload",
  41. ["topic", "partition", "offset", "metadata", "error"])
  42. # Other useful structs
  43. TopicPartition = namedtuple("TopicPartition",
  44. ["topic", "partition"])
  45. BrokerMetadata = namedtuple("BrokerMetadata",
  46. ["nodeId", "host", "port", "rack"])
  47. PartitionMetadata = namedtuple("PartitionMetadata",
  48. ["topic", "partition", "leader", "replicas", "isr", "error"])
  49. OffsetAndMetadata = namedtuple("OffsetAndMetadata",
  50. ["offset", "metadata"])
  51. OffsetAndTimestamp = namedtuple("OffsetAndTimestamp",
  52. ["offset", "timestamp"])
  53. # Deprecated structs
  54. OffsetAndMessage = namedtuple("OffsetAndMessage",
  55. ["offset", "message"])
  56. Message = namedtuple("Message",
  57. ["magic", "attributes", "key", "value"])
  58. KafkaMessage = namedtuple("KafkaMessage",
  59. ["topic", "partition", "offset", "key", "value"])
  60. # Define retry policy for async producer
  61. # Limit value: int >= 0, 0 means no retries
  62. RetryOptions = namedtuple("RetryOptions",
  63. ["limit", "backoff_ms", "retry_on_timeouts"])
  64. # Support legacy imports from kafka.common
  65. from kafka.errors import *