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的压力。
例如:
ServerA 172.17.12.101 tcp -h 172.17.12.101 -p 10000
ServerB 172.17.12.102 tcp -h 172.17.12.102 -p 10000
ServerC 172.17.12.103 tcp -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重新启动。
分享到:
相关推荐
标题中的“zeroc_ice-3.7.0-cp36-cp36m-win_...总的来说,zeroc_ice库为Python开发者提供了强大的分布式通信能力,简化了多进程间的数据交换,并且具有良好的性能和可扩展性,是构建复杂后端系统时值得考虑的工具之一。
zeroc_ice-3.7.6-cp38-cp38-win_amd64
zeroc_ice-3.7.6-cp37-cp37m-win_amd64
zeroc_ice-3.7.4-cp36-cp36m-win_amd64
在Ubuntu系统上安装Zeroc-ICE环境主要涉及以下知识点: 1. Ubuntu虚拟机的安装:用户需要在计算机上安装一个虚拟机软件,比如VirtualBox或者VMware,然后在虚拟机中安装Ubuntu操作系统。这一步骤是为了创建一个独立...
zeroc_ice-3.7.6-cp39-cp39-win_amd64
zeroc_ice-3.7.6-cp38-cp38-win32
zeroc_ice-3.7.6-cp39-cp39-win32
zeroc_ice-3.7.6-cp37-cp37m-win32
zeroc_ice-3.7.4-cp36-cp36m-win32
zeroc_ice-3.7.2-cp27-cp27m-macosx_10_14_x86_64.whl 是一个针对Python 2.7版本的ZeroC Ice库的二进制发行包,适用于MacOSX 10.14系统且为64位架构。ZeroC Ice是一款强大的、跨平台的分布式对象中间件,它允许...
python安装ice: pip install zeroc-ice
zeroc-ice 3.7.4源码.rar 压缩包中有 ice-3.7.4 ice-demos-3.7.4 Ice.framework3.7.4 freeze-3.7.4 IceBuilder ice-builder-gradle-1.4.7 ice-builder-visualstudio-6.0.0 ice-builder-xcode-3.1.0 源码包 ...
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...
Zeroc Ice原理介绍-附件资源
### ZeroC Ice 3.7 官方手册知识点解析 #### 一、Ice 手册概览 **1.1 Ice 概述** - **1.1.1 Ice 架构** - **术语(Terminology)**:介绍了与Ice相关的专业术语,帮助读者更好地理解文档中的内容。 - **Slice...
Zeroc ICE是一个开源的中间件平台,它支持C++、Java、Python、.NET等语言的分布式对象通信。ICE全称Internet Communications Engine,即互联网通信引擎,是一种用于开发分布式计算应用的强大工具。本文档主要围绕ICE...