文档章节

tns load balance及master/slave使用模式和灰度发布

book
 book
发布于 2016/04/18 02:42
字数 574
阅读 345
收藏 9

tns的两种模式


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


load balance

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

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

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


    在tnsclient中使用LoadbalanceTSNodeIndexBuilderRandomTSNodeSelector


master\slave


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

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

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

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


    在tnsclient中使用MaterSlaveTSNodeIndexBuilderMasterSlaveTSNodeSelector


灰度发布

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

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


© 著作权归作者所有

book

book

粉丝 42
博文 22
码字总数 15217
作品 2
海淀
高级程序员
tns 2.2.0 发布,thrift rpc 分布式组件

tns为thrift rpc分布式组件,实现rpc的高可靠、负载均衡、水平动态可扩展等,工具提供完整的命令行管理方式。 更新内容: 优化 重构协议 合并cnode和snode同步操作 分离cluster和client rpc ...

book
2016/05/12
1K
0
CentOS 7 多网卡绑定

根据官方文档RedHatEnterpriseLinux-7-NetworkingGuide-en-US用nmcli做起来还是相当容易的。下面把俺的步骤贴下。 1、查看目前网卡的名称和状态。 #nmcli device status DEVICE TYPE STATE C...

孤鸿子
2017/08/17
0
0
Linux的bond模式绑定及模式区别

Linux的bond模式配置 原理 多块网卡虚拟成一张,实现冗余;多张网卡对外显示一张,具有同一个IP;工作在网卡是混杂模式的情况下;对于多物理网卡的 Bond 网卡而言,其中一块物理网卡会被设置...

刀锋
07/13
0
0
bond双网卡绑定总结

bond双网卡绑定总结 什么是bond? 所谓bond,是一种通过把多个物理网卡绑定成一个逻辑网卡实现网卡冗余、负载均衡、提高带宽,从而实现网络性能高可用高可靠的技术。 bond有七种模型: mod0...

黎董
2017/04/24
0
0
Redis cluster管理工具redis-trib.rb详解

先从redis-trib.rb的help信息,看下redis-trib.rb提供了哪些功能。 可以看到redis-trib.rb具有以下功能: 1、create:创建集群 2、check:检查集群 3、info:查看集群信息 4、fix:修复集群 ...

哲别0
05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部