Package sarama is a pure Go client library for dealing with Apache Kafka (versions 0.8 and later). It includes a high-level API for easily producing and consuming messages, and a low-level API for controlling bytes on the wire when the high-level API is insufficient. Usage examples for the high-level APIs are provided inline with their full documentation.
To produce messages, use either the AsyncProducer or the SyncProducer. The AsyncProducer accepts messages on a channel and produces them asynchronously in the background as efficiently as possible; it is preferred in most cases. The SyncProducer provides a method which will block until Kafka acknowledges the message as produced. This can be useful but comes with two caveats: it will generally be less efficient, and the actual durability guarantees depend on the configured value of Producer.RequiredAcks. There are configurations where a message acknowledged by the SyncProducer can still sometimes be lost.
To consume messages, use the Consumer. Note that Sarama’s Consumer implementation does not currently support automatic consumer-group rebalancing and offset tracking. For Zookeeper-based tracking (Kafka 0.8.2 and earlier), the https://github.com/wvanbergen/kafka library builds on Sarama to add this support. For Kafka-based tracking (Kafka 0.9 and later), the https://github.com/bsm/sarama-cluster library builds on Sarama to add this support.
For lower-level needs, the Broker and Request/Response objects permit precise control over each connection and message sent on the wire; the Client provides higher-level metadata management that is shared between the producers and the consumer. The Request/Response objects and properties are mostly undocumented, as they line up exactly with the protocol fields documented by Kafka at https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol
Distribution of the request size in bytes for all brokers
request-size-for-broker-
histogram
Distribution of the request size in bytes for a given broker
request-latency-in-ms
histogram
Distribution of the request latency in ms for all brokers
request-latency-in-ms-for-broker-
histogram
Distribution of the request latency in ms for a given broker
response-rate
meter
Responses/second received from all brokers
response-rate-for-broker-
meter
Responses/second received from a given broker
response-size
histogram
Distribution of the response size in bytes for all brokers
response-size-for-broker-
histogram
Distribution of the response size in bytes for a given broker
Note that we do not gather specific metrics for seed brokers but they are part of the “all brokers” metrics.
请注意,我们不会收集seed brokers的详细指标,但它们是“所有brokers”指标的一部分。
Producer related metrics:
生产者关联指标:
Name
Type
Description
batch-size
histogram
Distribution of the number of bytes sent per partition per request for all topics
batch-size-for-topic-
histogram
Distribution of the number of bytes sent per partition per request for a given topic
record-send-rate
meter
Records/second sent to all topics
record-send-rate-for-topic-
meter
Records/second sent to a given topic
records-per-request
histogram
Distribution of the number of records sent per request for all topics
records-per-request-for-topic-
histogram
Distribution of the number of records sent per request for a given topic
compression-ratio
histogram
Distribution of the compression ratio times 100 of record batches for all topics
compression-ratio-for-topic-
histogram
Distribution of the compression ratio times 100 of record batches for a given topic