1.一种Docker容器主动负载均衡装置,包括:
镜像转换模块,用于提供包含应用管理器的Docker基础镜像并将待执行应用转换为Docker镜像;
应用管理器,用于启动该Docker镜像,并根据预设应用信息,解析并执行该待执行应用的启动命令,并将该应用注册到分布式协调服务器;
分布式协调服务器,用于部署分布式协调服务;
探测器,用于对该分布式协调服务器上的应用变化情况进行监听,将应用变化情况发送至负载均衡代理器;
负载均衡代理器,将所述应用变化情况根据配置模版转换一定格式的配置数据并执行,并配置到通用负载均衡器;
通用负载均衡器,用于部署通用负载均衡服务。
2.如权利要求1所述的一种Docker容器主动负载均衡装置,其特征在于,该镜像转换模块包括:
基础镜像, 用于预先存放该应用管理器与待执行应用需要的基础环境构建的Docker镜像,并将此镜像作为待执行应用的基础镜像,并存放在镜像仓库;
命令接收模块,用于接收该待执行应用的标识信息;
镜像构建模块,通过Dockerfile构建待执行应用镜像,并上传至镜像仓库。
3.如权利要求2所述的一种Docker容器主动负载均衡装置,其特征在于,该应用管理器包括:
参数解析模块,用于解析预设的应用信息;
命令执行模块,用于接收该参数解析模块解析出的应用执行命令,执行该命令并获取命令执行结果,若执行结果若正常,则调用应用注册模块;
应用注册模块,用于获取该参数解析模块解析出的数据以及获取待执行应用的状态信息,并与该分布式协调服务器建立临时会话链接,将该应用的状态详情注册到该分布式协调服务器;
健康检查模块,用于根据预设的健康检查命令轮询应用的健康情况,并将结果通知该应用注册模块。
4.如权利要求3所述的一种Docker容器主动负载均衡装置,其特征在于:当该Docker容器通过该应用注册模块注册到该分布式协调服务器时,判断该分布式协调服务器目录有无该应用相对应的目录,若无,则在分布式协调服务器创建新的目录并同时在该目录创建一新的节点。
5.如权利要求3所述的一种Docker容器主动负载均衡装置,其特征在于,该探测器包括:
监听模块,用于对在该分布式协调服务器上的应用变化情况进行监听,若应用对应的Docker容器实例状态发生变化则触发第一发送模块;
第一发送模块,用于将应用变化情况发送至负载均衡代理器。
6.如权利要求5所述的一种Docker容器主动负载均衡装置,其特征在于,该负载均衡代理器包括:
第一接收模块,与该第一发送模块进行连接并维持心跳,该第一接收模块接收该第一发送模块发来的指令,并调用数据解析模块;
数据解析模块,根据此时的配置模版模块的格式解析该指令,并传入第二命令执行模块;
配置模版模块,其模版数据根据负载均衡代理器所代理的负载均衡器不同;
第二命令执行模块,将数据写入该通用负载均衡器配置文件目录,执行该通用负载均衡器的重启命令。
7.一种Docker容器主动负载均衡方法,包括如下步骤:
步骤一,接收待执行应用文件,预设待执行应用详情;
步骤二,将所述待执行应用文件转换为Docker镜像;
步骤三,执行所述Docker镜像中应用启动命令;
步骤四,发送注册请求,将该应用注册到分布式协调服务器;
步骤五,从分布式协调服务器中获取所述注册信息,获取应用实例对应容器的变化数据,并将该数据进行解析,通过配置模版,更新配置文件到通用负载均衡器。
8.如权利要求7所述的一种Docker容器主动负载均衡方法,其特征在于:步骤五进一步包括:
监听应用在分布式协调器的目录节点,并将目录节点的变化信息发送到负载均衡代理器;
根据配置模版将变化信息同步到通用负载均衡器。
9.如权利要求8所述的一种Docker容器主动负载均衡方法,其特征在于:于步骤二中,将该待执行应用文件的标识信息按照规范写入Dockerfile,将待执行应用基础镜像与待执行应用通过Dockerfile构建待执行应用镜像。
10.如权利要求8所述的一种Docker容器主动负载均衡方法,其特征在于:于步骤四中,该待执行应用的Docker容器与该分布式协调服务器维持临时会话,当应用异常时,立即断开与该分布式协调服务器的链接,并自动退出。