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
-
.configure_consul_connection(consul_options) ⇒ Object
注意:这个配置是全局行的,配置后其他gem调用consul也会生效,所以要求所有的必须使用同一个consul服务 consul_options [Hash]: 示例 { url: ‘consul 地址,不传Diplomat会使用默认localhost地址’, config_options: {version: :TLSv1_2, headers: => “xxxx” } 其他参数有需要时再加.
-
.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 负载均衡算法,暂时无用,只有一种算法,自动使用.
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() return if .length.zero? url = [:url] = [:config_options] || {} Diplomat.configure do |config| config.url = url if url config. = 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(, = {}) ::Xconsul::LoadBalancer.new(, ) end |