Module: Kafka::Protocol

Defined in:
lib/kafka/protocol.rb,
lib/kafka/protocol/decoder.rb,
lib/kafka/protocol/encoder.rb,
lib/kafka/protocol/message.rb,
lib/kafka/protocol/message_set.rb,
lib/kafka/protocol/fetch_request.rb,
lib/kafka/protocol/fetch_response.rb,
lib/kafka/protocol/produce_request.rb,
lib/kafka/protocol/request_message.rb,
lib/kafka/protocol/produce_response.rb,
lib/kafka/protocol/metadata_response.rb,
lib/kafka/protocol/list_offset_request.rb,
lib/kafka/protocol/list_offset_response.rb,
lib/kafka/protocol/topic_metadata_request.rb

Defined Under Namespace

Classes: Decoder, Encoder, FetchRequest, FetchResponse, ListOffsetRequest, ListOffsetResponse, Message, MessageSet, MetadataResponse, ProduceRequest, ProduceResponse, RequestMessage, TopicMetadataRequest

Constant Summary collapse

REPLICA_ID =

The replica id of non-brokers is always -1.

-1
APIS =
{
  0 => :produce,
  1 => :fetch,
  2 => :list_offset,
  3 => :topic_metadata,
}
ERRORS =
{
  -1 => UnknownError,
  1 => OffsetOutOfRange,
  2 => CorruptMessage,
  3 => UnknownTopicOrPartition,
  4 => InvalidMessageSize,
  5 => LeaderNotAvailable,
  6 => NotLeaderForPartition,
  7 => RequestTimedOut,
  8 => BrokerNotAvailable,
  9 => ReplicaNotAvailable,
  10 => MessageSizeTooLarge,
  12 => OffsetMetadataTooLarge,
  17 => InvalidTopic,
  18 => RecordListTooLarge,
  19 => NotEnoughReplicas,
  20 => NotEnoughReplicasAfterAppend,
  21 => InvalidRequiredAcks,
}

Class Method Summary collapse

Class Method Details

.api_name(api_key) ⇒ Object



43
44
45
# File 'lib/kafka/protocol.rb', line 43

def self.api_name(api_key)
  APIS.fetch(api_key, :unknown)
end

.handle_error(error_code) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/kafka/protocol.rb', line 33

def self.handle_error(error_code)
  if error_code == 0
    # No errors, yay!
  elsif error = ERRORS[error_code]
    raise error
  else
    raise UnknownError, "Unknown error with code #{error_code}"
  end
end