Skip to content

通讯与组网

bokuore edited this page Jul 8, 2018 · 4 revisions

通讯与组网

Nano中,通讯分为外部通讯和内部通讯两种。

外部通讯,是Nano集群与外部模块之间的通讯,通常使用固定地址和端口,以便外部访问,比如FrontEnd调用Core模块提供的REST API接口默认会设定为TCP 5850端口。

内部通讯,是Nano集群内部模块之间的控制与传输,比如平台模块之间的控制报文,Cell与ImageServer之间的镜像传输数据等。为了最大程度地适应多变的网络环境,同时提升系统部署的智能化程度,减少人工配置工作,Nano的绝大部分内部网络通讯地址和端口均为动态分配,自动配置,正常情况下用户无需干预即可正常工作;当网络环境发生地址变化、模块迁移等场景下,Nano平台都可以自动完成网络重建和数据更新的工作,无需重新手动调整。

Nano的通讯形式如下图所示:

Web前端与REST接口

REST API由Core模块提供服务,默认监听端口TCP 5850;FrontEnd模块基于REST接口,提供了完整的Web管理界面便于用户操作,默认监听端口TCP 5870,用户也可以根据需要定制自己的FrontEnd服务。这两个端口为静态配置,在平台工作过程中不会发生变化,用户可以将其设置为认为合适的端口(需要重启模块生效, 详见 安装与配置)。

API接口定义和FrontEnd定制详见 自定义开发

集群发现与模块通讯

通讯域

现实中的网络环境非常复杂,而且容易变化,为了实现自动化的集群组网,Nano定义了通讯域的概念(Domain)。

同一套网络环境中,允许存在多个Nano集群,每个Nano集群使用一个独立的通讯域,一个通讯域由域名、组播地址、组播端口三部分定义。相同通讯域的模块可以相互发现,自动组网,同时不会与其他域的Nano集群交互冲突。

Nano集群安装时默认的通讯域如下:

域名:Nano 组播地址:224.0.0.226 组播端口:5599

用户可以在安装程序配置或者模块配置时修改默认域信息,以适配自己的环境或者构建多个Nano集群。

模块间通讯

Nano集群内部模块之间通讯使用基于UDP的可靠传输协议,为了保障集群可用性,减少人工配置故障,所有网络地址和端口都由模块自动选择、分配和组网,无需人工干预。

镜像传输

Clone this wiki locally