Module: Xconsul

Defined in:
lib/xconsul/consul/service.rb,
lib/xconsul.rb,
lib/xconsul/version.rb,
lib/xconsul/load_balancer.rb,
lib/xconsul/load_balance/base.rb,
lib/xconsul/load_balance/round_robin.rb

Overview

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

Defined Under Namespace

Modules: Consul, LoadBalance Classes: LoadBalancer

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.configure_consul_connection(consul_options) ⇒ Object

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

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

} 其他参数有需要时再加



23
24
25
26
27
28
29
30
31
32
# 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 = {}) ⇒ Object

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

balance_algorithm 


12
13
14
# File 'lib/xconsul.rb', line 12

def self.gen_balancer(consul_options, balance_options = {})
  ::Xconsul::LoadBalancer.new(consul_options, balance_options)
end