class CC::Kafka::Producer::Poseidon

Public Class Methods

new(host, port, topic, client_id) click to toggle source
# File lib/cc/kafka/producer/poseidon.rb, line 7
def initialize(host, port, topic, client_id)
  @brokers = ["#{host}:#{port}"]
  @topic = topic
  @client_id = client_id
end

Public Instance Methods

close() click to toggle source
# File lib/cc/kafka/producer/poseidon.rb, line 20
def close
  producer.close
end
send_message(message, key) click to toggle source
# File lib/cc/kafka/producer/poseidon.rb, line 13
def send_message(message, key)
  Kafka.logger.debug("sending message direct via Poseidon")
  producer.send_messages([
    ::Poseidon::MessageToSend.new(@topic, message, key)
  ])
end

Private Instance Methods

producer() click to toggle source
# File lib/cc/kafka/producer/poseidon.rb, line 26
def producer
  @producer ||= ::Poseidon::Producer.new(
    @brokers,
    @client_id,
    compression_codec: :gzip,
    required_acks: -1,
  )
end