• ICE集群──负载均衡及容错


    Zero ICE我们已经掌握其基本运行原理。下面我们主要介绍一下ICe的多端口邦定的问题。
    ICE使用TCP/IP 和UDP协议,以及基于TCP/IP之上的SSL协议。SSL协议可以充分保障Server/Client数据传输的加密安全性问题。
    在这里,Server如何在同一台主机监听多个端口。


    关于TCP/IP还是UDP还是SSL协议的选择,还是要看具有应用的要求,通常情况下TCP/IP协议的ICE应用已经足够了。

    在同一个主机主机上,ICE服务支持多端口的监听。

    服务端注册: tcp -h host -p port1:tcp -h host -p port2形式,

    例如:

    IP:172.17.12.101,需要在10001和10000同时监听。

    就可以写成:

    tcp -h 172.17.12.101 -p 10000:tcp -h 172.17.12.101 -p 10001


    赫赫是不是很简单,运行之后,服务就监听于10000和10001端口,请注意:避免其他应用相冲突。


    客户端连接可以采用如下3种形式:

    1. tcp -h 172.17.12.101 -p 10000
    2. tcp -h 172.17.12.101 -p 10001
    3. tcp -h 172.17.12.101 -p 10000:tcp -h 172.17.12.101 -p 100001

    是不是很爽。

    无论Server监听在多个端口,还是只有唯一的一个Server在工作,

    对于Client较多的应用或负载要求很高的情况下,我们可以把Server程序运行于多台主机之上。通过集群方式合理有效的化解来自Client的压力。

    例如:

    ServerA172.17.12.101tcp -h 172.17.12.101 -p 10000
    ServerB172.17.12.102tcp -h 172.17.12.102 -p 10000
    ServerC172.17.12.103tcp -h 172.17.12.103 -p 10000


    Client可以如下的连接方式:
    tcp -h 172.17.12.101 -p 10000:tcp -h 172.17.12.102 -p 10000:tcp -h 172.17.12.103 -p 10000

    或是
    tcp -h 172.17.12.101 -p 10000:tcp -h 172.17.12.102 -p 10000

    等多种情况,可以根据应用的具体要求合理有效的构造所需连接主机的字符串。


    这种连接方式是不是很cool。

    其实这种连接方式可以有效地利用ICE提供的load balancing功能,把Client的每个请求合理的分配到每个Server。从而有效地避免了Client大量请求对同一台Server的巨大压力。


    ICE的load balancing主要采用round-robin算法,round-robin是一种非常有效的负载均衡算法.



    大家会问了,如果某个Server如果宕机,那么这个Client还能正常工作么?

        这个问题问得好,其实ICE自身提供一种极其强大容错技术功能。
       具体体现在如果当某个Server(假设是ServerA)宕机之后,来自Client的请求分配到ServerA服务器上,Client会自动记录ServerA失效状态,会把请求再分配给可正常工作的Server(ServerB,ServerC),对于用户的每次请求都能分配到正常的服务主机上(除非A,B,C都同时宕机).当ServerA回复正常之后,Client会自动感知ServerA工作状态.Client的请求又可以有效地分配到上述A,B,C主机上.这一切对于开发者都是透明的.

    ICE所提供的集群功能和容错功能是极其强大的.



       Client状态感知的变化和更新完全不需要Client重新启动。

  • 相关阅读:
    Android编译系统分析四:实战-新增一个产品
    Android编译系统分析三:make完整编译android系统
    Android编译系统分析二:mm编译单个模块
    【python】-文件操作1
    【python】-文件操作
    【python】-集合操作
    【python】-字典的使用
    【python】-字符串常用操作
    【python】-编程练习
    解释型语言与编译型语言
  • 原文地址:https://www.cnblogs.com/buffer/p/1614772.html
Copyright © 2020-2023  润新知