module Kafka::BrokerUri

Constants

DEFAULT_PORT
URI_SCHEMES

Public Class Methods

parse(str) click to toggle source

Parses a Kafka broker URI string.

Examples of valid strings:

  • `kafka1.something`

  • `kafka1.something:1234`

  • `kafka://kafka1.something:1234`

  • `kafka+ssl://kafka1.something:1234`

  • `plaintext://kafka1.something:1234`

@param str [String] a Kafka broker URI string. @return [URI]

# File lib/kafka/broker_uri.rb, line 21
def self.parse(str)
  # Make sure there's a scheme part if it's missing.
  str = "kafka://" + str unless str.include?("://")

  uri = URI.parse(str)
  uri.port ||= DEFAULT_PORT

  # Map some schemes to others.
  case uri.scheme
  when 'plaintext'
    uri.scheme = 'kafka'
  when 'ssl'
    uri.scheme = 'kafka+ssl'
  end

  unless URI_SCHEMES.include?(uri.scheme)
    raise Kafka::Error, "invalid protocol `#{uri.scheme}` in `#{str}`"
  end

  uri
end