副问题[/!--empirenews.page--]
冷备与热备
- 冷备份(cool standby),指配备平常不运行的备用装备,当运行装备产生妨碍时,行使备用装备替代。
- 热备份(hot standby),指在装备运行的同时运行备用装备,当运行装备产生妨碍时,可以或许自动替代备用装备。
fail-over与fail-back
- fail-over,在空余布局中,遏制运行装备,行使备用装备举办事变的进程称为替代,英文称为fail-over可能switch-over。
- fail-back,替代后再次规复到原本的运行装备,也就是从运行状态的备用装备再切换到原本的运行装备的进程,称为回退,英文称为fail-back或switch-back。
冗余范例
1.主备方法(Active-Standby)
筹备两台路由器,个中一台作为正常运行营业的活泼装备(active),也可以称为主装备(master)可能主要装备(primary)。另一台作为产生妨碍时替代的备用装备(standby),也可以称为备机(backup)、从装备(slave)、须要装备(secondary)。活泼装备和备用装备必需共享关于装备的配置信息。
2.双活方法(Active-Active)
筹备两台路由器,个中一台作为主要装备(primary),另一台作为次要装备(secondary),二者同时运行来构成冗余布局。这种方法可以通过与负载平衡装备并用可能配置DNS、客户端一侧的路由信息来到达负载平衡的目标。
3.集群方法(Cluster)
在主备方法或双活方法中,行使3台以上的硬件协同构成冗余布局的方法。
什么是负载平衡
负载平衡,英文名称为Load Balance,指由多台处事器以对称的方法构成一个处事器荟萃,每台处事器都具有等价的职位,都可以单独对外提供处事而无须其他处事器的帮助。通过某种负载分管技能,将外部发送来的哀求匀称分派到对称布局中的某一台处事器上,而吸取到哀求的处事器独立地回应客户的哀求。负载平衡可以或许均匀分派客户哀求随处事器阵列,借此提供快速获取重要数据,办理大量并发会见处事题目,这种集群技能可以用起码的投资得到靠近于大型主机的机能。
负载平衡算法在许多处所都有行使,无论是在处事管理中可能是在漫衍式缓存中都大量的行使,本文首要先容几种常见的负载平衡的算法.
1.轮询法
轮询法,很好领略,将哀求凭证次序轮番的分派随处事器上,他平衡的看待每一台后端的处事器,不体谅处事器的的毗连数和负载环境.以下代码演示了这种算法.
- public class BalanceServer {
- public static List<String> servers =
- Arrays.asList("192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4",
- "192.168.0.5");
- public static int pos = 0;
- public static String getServer() {
- String server = null;
- if (pos >= servers.size()) {
- pos = 0;
- }
- server = servers.get(pos);
- pos++;
- return server;
- }
- public static void main(String[] args) {
- for(int i=0;i<10;i++){
- System.out.println(BalanceServer.getServer());
- }
- }
- }
轮询的计策目标在于哀求的绝对平衡,可是在现实的环境下,也许处事器并不是完全一样,导致有些机能高的处事器不能完全施展出来.
2.随机法
通过体系的随机函数,按照后端处事器列表的巨细来随机获取个中的一台来会见,跟着挪用量的增大,现实结果越来越近似于均匀分派到没一台处事器.和轮询的结果相同, 代码如下:
- public class BalanceServer {
- public static List<String> servers = Arrays.asList("192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4",
- "192.168.0.5");
- public static int pos = 0;
- public static String getServer() {
- String server = null;
- Random random = new Random();
- int randomPos = random.nextInt(servers.size());
- server = servers.get(randomPos);
- return server;
- }
- }
和轮询算法较量,在并发的场景下,轮询必要加锁,随机法想比而言机能好点.
3.源地点hash法
源地点hash法的头脑是获取客户端会见的ip地点,通过hash函数计较出一个hash值,用该hash值对处事器列表的巨细举办取模运算,获得的值就是要会见的处事器的序号,代码如下:
- public class BalanceServer {
- public static List<String> servers = Arrays.asList("192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4",
- "192.168.0.5");
- public static int pos = 0;
- public static String getServer(String ip) {
- String server = null;
- int hashCode = ip.hashCode();
- pos = hashCode % servers.size();
- server = servers.get(pos);
- return server;
- }
- }
hash法的甜头是,在处事器列表稳固的环境下,每次客户端会见的处事器都是统一个处事器.操作这个特征可以有状态的session会话.无需特另外操纵就可以实现粘性会话.
4.加权轮询法
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|