module Xconsul

consul service 调用封装

轮训调度算法 最简单策略,调用计数器每调用一次+1,调用数 % hosts数,根据mod值取host 计算器暂时不做线程安全处理,1 不需要完全这么精确,并发发同一host多个也无所谓,2 减少代码锁

Constants

VERSION

Public Class Methods

configure_consul_connection(consul_options) click to toggle source

注意:这个配置是全局行的,配置后其他gem调用consul也会生效,所以要求所有的必须使用同一个consul服务 consul_options [Hash]: 示例 {

url: 'consul 地址,不传Diplomat会使用默认localhost地址',
config_options: {ssl: {version: :TLSv1_2}, headers: {"X-Consul-Token" => "xxxx"}

} 其他参数有需要时再加

# File lib/xconsul.rb, line 23
def self.configure_consul_connection(consul_options)
  return if consul_options.length.zero?
  url = consul_options[:url]
  config_options = consul_options[:config_options] || {}

  Diplomat.configure do |config|
    config.url = url if url
    config.options = config_options
  end
end
gen_balancer(consul_options, balance_options = {}) click to toggle source

通过此方法生成一个balancer,后面获取host时调用 balancer.host('10.10.142.233:8890') 所有Hash key请传入symbol格式 consul_options [Hash]: 详细见::Xconsul::LoadBalancer内注释 balance_options [Hash]: 暂时不需要传

balance_algorithm 负载均衡算法,暂时无用,只有一种算法,自动使用
# File lib/xconsul.rb, line 12
def self.gen_balancer(consul_options, balance_options = {})
  ::Xconsul::LoadBalancer.new(consul_options, balance_options)
end