本发明涉及计算机软件的分布式系统技术领域,特别涉及一种api网关智能感知集群的方法。
背景技术:
随着移动互联网的不断深入,越来越多的公司和企业逐渐开始面向互联网,并且把面向客户的服务和业务也迁移到线上。在开发这些线上业务时,随着客户数量的不断增多,业务平台的架构也在不断地变化演进。从早期的单体应用架构逐渐转变为微服务架构,集群和分布式也成为了标配的技术。
在构建微服务架构的基础平台的过程中,api网关是必不可少的核心组件之一。api网关为一组微服务提供统一的接口,以便客户端无需知道微服务内部的所有细节。
由于api网关是终端用户访问的统一入口,如果它连接的后端微服务数量过多,api网关自身的i/o吞吐量将成为瓶颈。通常的解决方法是对api网关进行集群。但是要对api网关进行集群,其配置并不简单,通常需要做大量的人工工作,而且还容易出错。
技术实现要素:
本发明的目的是克服上述背景技术中不足,提供一种api网关智能感知集群的方法,该方法适用于采用了集群和/或分布式设计的系统,可使得api网关集群在部署时变得更加智能化,降低了devops的实施难度,减轻了人力工作成本,且不容易出错。且经实践证明,在大规模数据中心环境中实施能够产生显著地经济效益。
为了达到上述的技术效果,本发明采取以下技术方案:
一种api网关智能感知集群的方法,包括以下步骤:
a.将api网关部署到服务器节点中,并通过api网关使用指定的端口扫描局域网或指定的网段,查看是否有同类的api网关在线;
b.api网关根据局域网或网段包含的所有ip地址,形成一个地址列表,依次扫描所述地址列表中的地址,并列出所有可用的api网关节点形成一个可用节点列表;
c.判断可用的api网关节点的数量是否大于0,若是,则进入步骤e,否则,进入步骤d;
d.api网关以单节点模式开始工作;
e.api网关与所述可用节点列表中的任一节点通信,请求并获取主节点的信息;
f.api网关与主节点进行通信并将自身节点信息通知主节点;
g.主节点确认步骤f的节点信息,将节点信息加入集群节点中,并通知集群内的所有节点更新信息;
h.当所有节点完成信息更新则此api网关以集群节点的方式开始工作。
进一步地,所述步骤a中的服务器节点为云服务提供商的虚拟云主机或物理服务器或数据中心的物理服务器或数据中心的虚拟服务器。
进一步地,所述步骤a中将api网关部署到服务器节点中具体为:将api网关打包成容器镜像并放入容器环境中运行。
进一步地,所述步骤a中指定端口或指定网段时是通过配置文件或者启动参数的方式实现。
进一步地,所述步骤b中api网关扫描地址列表中的地址时具体采用应答机制,即api网关节点在扫描时向给出的ip地址和指定的端口发出特定的请求数据包,若存在同样的api网关节点,被扫描的api网关节点则返回约定的响应数据包。
进一步地,所述步骤e中的主节点可通过配置文件指定或默认第一个上线的api网关节点为主节点。
进一步地,所述步骤g中主节点确认节点信息时通过功能验证的方式,即主节点发送测试数据包验证新节点的功能是否正常,并将功能正常的节点的节点信息加入集群节点中通知集群内的所有节点更新信息。
本发明与现有技术相比,具有以下的有益效果:
通过本发明的api网关智能感知集群的方法,可实现将api网关集群在部署时变得更加智能化,降低了devops的实施难度,减轻了人力工作成本,且不容易出错。在大规模数据中心环境中实施能够产生显著地经济效益。
附图说明
图1是本发明的api网关智能感知集群的方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
如图1所示,一种api网关智能感知集群的方法的流程示意图,该方法可以应用于微服务架构中,可以应用于分布式计算平台、云计算平台等数据中心,该方法主要包括以下步骤:
步骤101,api网关部署上线,扫描节点。
具体的,api网关部署上线是指把api网关软件部署到服务器节点中,服务器节点可以是云服务提供商的虚拟云主机,也可以是物理服务器,还可以是数据中心的物理或虚拟服务器。
本实施例中,api网关部署上线具体为将api网关软件打包成容器镜像,并放入容器环境中运行。
其中,扫描节点具体是指api网关软件使用指定的端口扫描局域网或指定的网段,查看是否有同类的api网关软件在线。指定端口或指定网段则可以通过配置文件或者启动参数的方式实现。
步骤102,api网关完成扫描,列出所有可用的api网关节点。
api网关完成局域网或指定网段的扫描,列出所有可用的api网关节点形成一个可用节点列表。
具体的,扫描过程是根据网段包含的所有ip地址,形成一个地址列表,依次扫描。本实施例中,每一个地址的扫描都是采用了应答机制,即api网关节点向给出的ip地址和指定的端口发出特定的请求数据包,如果存在同样的api网关节点,该节点就会返回事先约定的响应数据包。比如本实施例中具体为:api网关节点在扫描时向给出的ip地址和指定的端口发出gwn-y数据包,若存在同样的api网关节点,被扫描的api网关节点则会返回n-y数据包。
步骤103,判断可用的api网关节点数量是否大于0。
判断步骤102获得的列表中可用api网关节点数是否大于0。若不是,表示没有可用的api网关节点,也即刚上线的api网关节点是唯一的节点,转向步骤104;若是,则转向步骤105。
步骤104,api网关以单节点模式开始工作。
api网关确定没有同类网关的存在,其内部逻辑切换到单节点工作模式,对外提供服务。
步骤105,api网关与列表中的任一节点通信,获得主节点的信息。
具体为api网关从步骤102获得的可用节点列表中,随机选出一个有效的节点,与之通信,请求并获取api网关主节点的信息。
具体的,可默认第一个上线的api网关节点为主节点也可通过配置文件指定主节点。
步骤106,api网关与主节点进行通信,将自身节点信息通知主节点。
步骤107,主节点确认步骤106的节点信息,将节点信息加入集群节点中,并通知集群内的所有节点更新信息。
主节点与api网关继续通信,确认步骤106的节点信息,将信息加入集群节点中,并通知集群内的所有节点更新信息。
具体的,主节点确认新节点信息时可以通过功能验证的方式,即主节点发送测试数据包,验证新节点的功能是否正常,并将功能正常的新节点的信息加入集群节点中,并通知集群内的所有节点更新信息。
步骤108,所有节点完成信息更新,此api网关以集群节点的方式开始工作。
所有api网关节点完成集群信息的更新,并通知主节点,主节点在接收到所有节点的更新完成信号后,通知新api网关节点,于是新api网关以集群节点的方式开始工作。
由上可知,本发明的api网关智能感知集群的方法,可使得api网关集群在部署时变得更加智能化,降低了devops的实施难度,减轻了人力工作成本,且不容易出错。实践证明,在大规模数据中心环境中实施能够产生显著地经济效益。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。