kafkajs
Version:
A modern Apache Kafka client for node.js
42 lines (38 loc) • 1.22 kB
JavaScript
const { parse, decode: decodeV1 } = require('../v5/response')
/**
* In version 6 on quota violation, brokers send out responses before throttling.
* @see https://cwiki.apache.org/confluence/display/KAFKA/KIP-219+-+Improve+quota+communication
*
* Metadata Response (Version: 6) => throttle_time_ms [brokers] cluster_id controller_id [topic_metadata]
* throttle_time_ms => INT32
* brokers => node_id host port rack
* node_id => INT32
* host => STRING
* port => INT32
* rack => NULLABLE_STRING
* cluster_id => NULLABLE_STRING
* controller_id => INT32
* topic_metadata => error_code topic is_internal [partition_metadata]
* error_code => INT16
* topic => STRING
* is_internal => BOOLEAN
* partition_metadata => error_code partition leader [replicas] [isr] [offline_replicas]
* error_code => INT16
* partition => INT32
* leader => INT32
* replicas => INT32
* isr => INT32
* offline_replicas => INT32
*/
const decode = async rawData => {
const decoded = await decodeV1(rawData)
return {
...decoded,
throttleTime: 0,
clientSideThrottleTime: decoded.throttleTime,
}
}
module.exports = {
decode,
parse,
}