Sha256: dcf47ff4e1885447a46b3d5ff6590949470fcb8b79bc773fd9f649cd0dfff93e

Contents?: true

Size: 902 Bytes

Versions: 22

Compression:

Stored size: 902 Bytes

Contents

# frozen_string_literal: true

require "kafka/broker"

module Kafka
  class BrokerPool
    def initialize(connection_builder:, logger:)
      @logger = TaggedLogger.new(logger)
      @connection_builder = connection_builder
      @brokers = {}
    end

    def connect(host, port, node_id: nil)
      if @brokers.key?(node_id)
        broker = @brokers.fetch(node_id)
        return broker if broker.address_match?(host, port)
        broker.disconnect
        @brokers[node_id] = nil
      end

      broker = Broker.new(
        connection_builder: @connection_builder,
        host: host,
        port: port,
        node_id: node_id,
        logger: @logger,
      )

      @brokers[node_id] = broker unless node_id.nil?

      broker
    end

    def close
      @brokers.each do |id, broker|
        @logger.info "Disconnecting broker #{id}"
        broker.disconnect
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
ruby-kafka-1.5.0 lib/kafka/broker_pool.rb
ruby-kafka-aws-iam-1.4.5 lib/kafka/broker_pool.rb
ruby-kafka-aws-iam-1.4.4 lib/kafka/broker_pool.rb
ruby-kafka-aws-iam-1.4.3 lib/kafka/broker_pool.rb
ruby-kafka-aws-iam-1.4.2 lib/kafka/broker_pool.rb
ruby-kafka-aws-iam-1.4.1 lib/kafka/broker_pool.rb
ruby-kafka-1.4.0 lib/kafka/broker_pool.rb
ruby-kafka-temp-fork-0.0.2 lib/kafka/broker_pool.rb
ruby-kafka-temp-fork-0.0.1 lib/kafka/broker_pool.rb
ruby-kafka-1.3.0 lib/kafka/broker_pool.rb
ruby-kafka-1.2.0 lib/kafka/broker_pool.rb
ruby-kafka-1.1.0 lib/kafka/broker_pool.rb
ruby-kafka-1.1.0.beta1 lib/kafka/broker_pool.rb
ruby-kafka-1.0.0 lib/kafka/broker_pool.rb
ruby-kafka-0.7.10 lib/kafka/broker_pool.rb
ruby-kafka-0.7.9 lib/kafka/broker_pool.rb
ruby-kafka-0.7.8 lib/kafka/broker_pool.rb
ruby-kafka-0.7.7 lib/kafka/broker_pool.rb
ruby-kafka-custom-0.7.7.26 lib/kafka/broker_pool.rb
ruby-kafka-0.7.6 lib/kafka/broker_pool.rb