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