zoukankan      html  css  js  c++  java
  • 分布式和集群

    Content

    0.

    1.分布式

    2.集群

    3.负载均衡

    4.弹性

    5.失效转移

    0.

    本文主要是介绍分布式和集群,并实现集群的高可用性。

     

    1.分布式

    分布式是指将不同的业务分布在不同的地方。举个例子:小明的公司有3个系统(系统A、系统B、系统C) ,这三个系统所做的业务不同,被部署在3个独立的机器上运行, 他们之间互相调用(当然是跨域网络的), 通力合作完成公司的业务流程。

     现在问题来了,系统A是公司的门户网站,用户访问量大的时候,速度可能会很慢,也可能会挂掉,这就造成系统可用性降低。怎么解决呢?

    2.集群 

    小明的公司不差钱,就多买几台机器,小明把系统A一下子部署几份,每一份都是系统A的一个实例,对外提供同样的服务。

    可是对于用户来说一下子出现这么多系统A,每个系统的IP都不 一样,到底该访问哪一个呢?如果所有的用户都访问服务器1.1,那么其他二个服务器一直都闲着,这是钱多啊!

    3.负载均衡

     

     

    小明想尽可能的让3个机器上的系统A都能工作,并且为了同一台机器访问量太大造成系统不可用,这时希望让3个机器上的系统A工作均衡一下,比如要3万个请求,那就让3个服务器各处理1万请求(理想情况),这叫负载均衡。很明显,这个负载均衡的工作最好独立出来, 放到独立的服务器上 (例如Ngnix):

     

    这样虽然充分利用服务器了,但是如果负载均衡服务器挂掉了呢?

    没办法,只能将负载均衡也搞个集群,不过和系统A的集群有两点不同:这个新的集群中虽然有两个机器,但我们可以用某种办法,让这个集群对外只提供一个IP地址, 也就是说用户看到的好像只有一个机器;同一时刻,我们只让一个负载均衡的机器工作, 另外一个原地待命。 如果工作的那个挂掉了,待命的那个就顶上去。

    4.弹性

    双11要来了,访问量是平时的几十倍,为了满足大量的请求,小明申请再买了几十台服务器,一下子把系统A部署了几十份,可是双11过后,访问量恢复正常,几十个服务器用不上了。因为这事被领导狠狠的批评了,小明了解云计算后,知道云端可以轻松的创建、删除虚拟的服务器,那样就可以轻松地解决增减服务器了。于是小明的系统具备了一定弹性。

    5.失效转移

    上面的系统看似很美好,但是当一个用户第一次访问被负载均衡代理到系统A服务器1.1并登录后,服务器1.1保留了用户的登录信息;当用户再次发送请求时被负载均衡代理到系统A服务器1.2,由于这台服务器没有用户的登录信息,所以导致用户需要重新登录。所以,实施负载均衡的时候,我们必须考虑Session的问题。一种办法是把状态信息在集群的各个服务器之间复制,不过不推荐使用。还有一种办法,就是把状态信息集中存储在一个地方,让集群的各个服务器都能访问到。

     

     

     

     

  • 相关阅读:
    驰骋工作流引擎2016年第1次组团培训日程
    CCBPM中流程回滚的介绍
    CCBPM流程变更处理解决方案与对策
    CCBPM多表单流程中关于绑定表单的设计步骤
    CCBPM关于工作流引擎取回审批的设计方案与实现过程
    线程池 -实现线程复用
    线程安全 -同步锁机制
    匿名内部类创建线程,简化线程创建代码
    Thread -线程的两种创建方式
    Throwable -抛出异常类与自定义异常类
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/7777564.html
Copyright © 2011-2022 走看看