通过Ice grid 的间接代理功能,进行负载均衡的实现机制.

1 篇文章 0 订阅
1 篇文章 0 订阅

最近研究ICE通话器使用间接代理情况下,对endpoints的选择机制上有一些模糊,仔细读了ICE的代码,才搞清了它的原理:

Ice使用直接代理时不必多说;

 

Ice通话器在采用间接代理时,首先从Grid的Locator获得真实服务的Endpoint地址列表,(取回的个数可在grid的xml配置文件中设置。(<load-balancing type="round-robin" n-replicas="0"/>,0全部,1返回1个,n指定个数)

无论选择何种设置,客户端会保存endpoints的列表(可能是多个ip端口地址),此时客户端

如果设置为App.Proxy.EndpointSelection= Random 则将endpoints序列随机重新排序,并选择第一个作为首先连接地址(如果配置order,则不进行随机重排);连接动作是一个异步操作,连接失败会按照列表依次重试;如果连接成功,该通话器的每次调用,(checkcast)时,只对连接有效性进行一下验证,如果连接正常则直接使用,及时客户端有多个endpoint的列表,也不会进行的选择(估计是出于效率的考虑)。

 

如果n-replicas=”1”(ice默认)哪么endpoints的选择工作就在服务端进行了。

 

可以得出结论:一般情况应该采用grid负载均衡的方式,当建立不同的通话器的时候,就可以自动选择到不同的endpoint。(服务端,客户端都可选择默认设置 n-replicas="1")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值