zoukankan      html  css  js  c++  java
  • 稳定高效大型系统架构集群中间件开发

    那现在来说,稳定的中间件应该是什么样子呢?

           对于客户端请求,如果发现服务停止,可以实现服务无缝转移---这叫不丢失任何服务.

           对于多个客户端请求,可以讲请求轮巡到不同的服务器上---这样叫负荷平摊,如果再做到可以根据客户端数量方面地增减服务器数量,那就能很通过简单增加服务器,实现系统效率的提升。

           最牛的是,如果你再加上分布式程序设计。一个函数,根据服务器负荷平摊的特点,可以让多个服务器,同时为一个函数工作。

    思考:

           第一:客户端请求,实现轮巡。

                       知道了请求,需要轮巡。就要先知道有那些服务器---》 设计服务器注册注销机制。

                       还要知道请求当前,每台服务器上有那些负荷---》客户端请求计算机制。

                       然后根据这些,计算当前请求由那个服务器来完成任务。

          第二:故障热切换

                      经试验验证,故障有三种情况

                     A)请求选择服务器前,有故障。

                     B)服务器选中后,准备开始要服务时,故障。

                     C)服务正在进行时,发生故障

    为解决以上问题,我做出如下架构:

                   

    1、       在客户端,开发了安全访问机制,保证在有服务存在的情况,单次的访问异常,可以容错;同时若访问时发生故障,重新请求。

    2、中间层开发了负荷平衡机制,其建立的集群,对客户端来说,是一个透明体。客户端只需要知道公布的服务集群IP地址,由负荷平衡自动分配请求;同时服务器发生故障时,自动从集群中移去,将请求切换至其它正常的服务器上。(中间层是一个无状态,多线程,分布式的应用程序服务,对任何一个请求,由哪台服务器提供服务都可以达到一致的目标)

  • 相关阅读:
    IIS:日志代码分析
    SQL:查找被锁的表,以及锁表的SQL语句(重点推荐)
    SQL 2000/2005/2008 收缩日志方法
    SQL SERVER:使用工具观察与分析数据库中锁信息
    C# : Post 接收或发送XML
    WCF:没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的。
    SQL2005 遍历表插入
    SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法
    C#:安装Windows服务,动态指定服务名及描述
    IE6与 javascript:void(0)
  • 原文地址:https://www.cnblogs.com/lzjsky/p/2092367.html
Copyright © 2011-2022 走看看