tns的两种模式及灰度发布与冷启动-阿里云开发者社区

开发者社区> mengku> 正文

tns的两种模式及灰度发布与冷启动

简介:
+关注继续查看

tns的两种模式

    tns客户端tns-client支持不同的使用模式,包括load balance、masterslave模式,接下来介绍不同模式的作用和设计原理

load balance

    在集群模式中,一个请求过来后要通过某种策略将请求分配到后台某个服务器上,这个策略我们可以称为负载均衡

    tns采用加权随机的方法实现负载均衡

    举例:服务serviceA下面有3个实例,对不同的实例分配不同的vNodes个数(权重),假如:a1:2;a2:4;a3:4,那么客户端会将请求的2/10分配到a1节点,将请求的4/10分配到a2节点或a3节点,从而实现了负载均衡

    在tnsclient中使用LoadbalanceTSNodeIndexBuilderRandomTSNodeSelector

masterslave

    在集群模式中,我们希望将请求分发到主节点(master),然后当master down后,将请求分发到某slave节点


    大多数分布式系统master/slave由分布式系统本身实现,即系统自身包含一个监控组件,当监控组件检测到master不可用后自动提升某slave为master,典型代表为zookeeper(leader、flower)

    tns自身并不提供masterslave功能,通过tnsclient在调用某个服务时实现。同样基于vNodes机制,tnsclient将获取到的某服务的所有实例,根据vNodes进行自然排序,vNodes小的节点优先,若vNodes相同,再根据id进行排序

    同上面例子,如果采用masterslave模式,a1 vnodes最小,排在第一位,作为master;假如a1 down掉,那么a2或a3被提升为master,此时a2和a3 vnodes相同,所以id小的会被提升为master

    在tnsclient中使用MaterSlaveTSNodeIndexBuilderMasterSlaveTSNodeSelector

灰度发布与冷启动

    所谓灰度发布,就是对要发布的程序先小批量上线,一旦出现问题,不至于影响到所有用户。

    tns实现方式天然具有灰度发布的特性。基于vNodes,并且采用load balance模式,我们只需将发布的新节点的vNodes设置比较小(权重低),那么线上的流量只会有一小部分流到这个新节点,从而实现灰度发布的效果。

    一般情况下,刚刚加入到集群的节点认为是冷启动状态,为了进行预热,需要对其慢慢增加压力,同上,tns在每次ping service的时候都会更新vNodes,service可以根据自己的状态返逐级增加vNodes,来达到冷启动的效果。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
WinForm程序启动控制台窗口Console
本文转载:http://blog.csdn.net/oyi319/article/details/5753311 2.WinForm程序和控制台窗口Console 如果你调试过SharpDevelop的源程序,会发现它在DEBUG模式时会出现一个控制台窗口,以显示日志信息。
666 0
[10.14 workshop] ACK应用灰度发布
灰度发布是可以帮助您渐进式更新Deployment的工具。它能结合Ingress Controller实现多版本共存,发布暂停,流量百分比切换,健康检查等功能,极大解放灰度发布过程中的手动操作,全自动化实现线上灰度流量切换。本文介绍如何创建灰度发布。
252 0
+关注
3
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载