CN109960580A - 一种部署开票服务的方法及系统 - Google Patents

一种部署开票服务的方法及系统 Download PDF

Info

Publication number
CN109960580A
CN109960580A CN201711424473.4A CN201711424473A CN109960580A CN 109960580 A CN109960580 A CN 109960580A CN 201711424473 A CN201711424473 A CN 201711424473A CN 109960580 A CN109960580 A CN 109960580A
Authority
CN
China
Prior art keywords
server
redis
mirror image
cluster
rabbitmq
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711424473.4A
Other languages
English (en)
Inventor
何凯
尹春天
戴晓栋
张玉魁
龚勇浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201711424473.4A priority Critical patent/CN109960580A/zh
Publication of CN109960580A publication Critical patent/CN109960580A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种部署开票服务的方法及系统,用于解决现有技术中部署开票服务存在部署难度大、耗时长的技术问题。所述方法包括:在M个服务器上安装docker,并将所述M个服务器组成一个docker swarm集群,M>=1;调用所述docker swarm集群,生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。

Description

一种部署开票服务的方法及系统
技术领域
本发明涉及互联网领域,特别涉及一种部署开票服务的方法及系统。
背景技术
应国家税务总局的要求,石化、电力、电信、燃气等行业纳税人需要建立开票平台,实现机打发票业务的推广。目前,部署开票服务的方法是:人为地将支撑开票服务的各个应用软件如Redis,ZooKeeper,RabbitMQ、Tomcat等安装到开票系统中的各个服务器上。
该方法存在以下缺点:应用软件的生产环境、研发环境、测试环境不一致,导致软件部署难度大;其次,由于开票系统的服务器数量较大,每个应用软件都需要在多个不同的服务器上部署,重复性的部署工作多,耗时长。
发明内容
本发明实施例提供一种部署开票服务的方法及系统,用于解决现有技术中部署开票服务存在部署难度大、耗时长的技术问题。
本发明实施例第一方面提供一种部署开票服务的方法,包括:
在M个服务器上安装docker,并将所述M个服务器组成一个docker swarm集群,M>=1;
调用所述docker swarm集群,生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;
调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;
将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
在上述方案中,通过docker swarm集群,可以统一研发、测试、生产等环境,将部署开票服务的系统方便地提供给生产、研发、测试等各个环节的人员使用,解决了现有技术部署开票服务难度大的技术问题;并且,对于每个应用软件,最少只需要创建一次镜像,后续输入创建各个应用的集群服务的命令就可以将各个应用的镜像推送到对应的运行服务器上运行,实现各个应用的服务集群的部署,相较于现有技术,能够避免大量的重复性部署工作,有效缩减服务部署时间、节约了成本。
可选的,所述调用所述docker swarm集群,生成创建Redis集群服务、RabbitMQ集群服务、ZooKeeper集群服务、以及Tomcat集群服务所需要的镜像,包括:在所述M个服务器中的至少一台服务器上运行Redis的dockerfile文件,生成Redis镜像,所述Redis镜像配置了Redis的至少一个运行服务器;和,在所述M个服务器中的至少一台服务器上运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,所述ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;和,在所述M个服务器中的至少一台服务器上运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,所述RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;和,在所述M个服务器中的至少一台服务器上运行Tomcat的dockerfile文件,生成Tomcat镜像,所述Tomcat镜像配置了Tomcat的至少一个运行服务器。
通过本方式,docker swarm集群可以基于各个应用的dockerfile生成各个应用的镜像。
可选的,所述调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务,包括:在所述Redis镜像配置的各个运行服务器上运行所述Redis镜像;和,在所述ZooKeeper镜像配置的各个运行服务器上运行所述ZooKeeper镜像;和,在所述RabbitMQ镜像配置的各个运行服务器上运行所述RabbitMQ镜像;和,在所述Tomcat镜像配置的各个运行服务器上运行所述Tomcat镜像。
通过本方式,可以将各个应用的镜像分配到各个应用所配置的运行服务器上运行,进而实现各个应用的集群服务的部署。
可选的,所述Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件;所述在所述M个服务器中的至少一台服务器上运行Redis的dockerfile文件,生成Redis镜像,包括:在所述M个服务器中的至少一台服务器上运行Redis的主节点dockerfile文件,生成Redis主节点镜像,所述Redis主节点镜像配置了Redis的主节点运行服务器;和,在所述M个服务器中的至少一台服务器上运行Redis的从节点dockerfile文件,生成Redis从节点镜像,所述Redis从节点镜像配置了Redis的至少一个从节点运行服务器;所述在所述Redis镜像配置的各个运行服务器上运行所述Redis镜像,包括:在Redis的主节点运行服务器上运行所述Redis主节点镜像;和,在Redis的各个从节点运行服务器上运行所述Redis从节点镜像。
通过本方式,可以实现Redis的主从服务的部署。
可选的,所述各个应用对应的镜像中配置了各个应用的最大运行内存。
通过本方式,可以对开票服务系统的各个应用进行资源限额,清晰地规划资源消耗,避免服务器因应用的运行资源不足导致宕机等问题。
可选的,在根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务之后,所述方法还包括:在检测到任一应用的镜像更新时,调用所述docker swarm集群,根据更新后的镜像更新所述任一应用的集群服务。
通过本方式,只需要修改某个应用的dockerfile文件的配置,就可以实现该应用的集群服务的更新,可达到自动化并且高效的容器管理效果。
可选的,所述M个服务器中的任意一个服务器上安装有docker镜像仓库,所述M个服务器共享所述docker镜像仓库;在生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像之后,所述方法还包括:将生成的各个镜像推送到所述docker镜像仓库中储存;所述根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务,包括:根据所述docker镜像仓库中储存的Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务。
通过本方式,M个服务器可以共享镜像仓库中的镜像,进而可以更方便地将各个镜像推送到对应的运行服务器上运行,进一步提高各个应用的集群服务的部署效率。
本发明实施例第二方面提供一种部署开票服务的系统,所述系统包括M个服务器,所述系统中每个服务器安装有docker,所述M个服务器组成一个docker swarm集群,M>=1;所述系统中的第一服务器,用于生成Redis镜像;所述系统中的第二服务器,用于生成ZooKeeper镜像;所述系统中的第三服务器,用于生成RabbitMQ镜像;所述系统中的第四服务器,用于生成Tomcat镜像;所述第五服务器用于:根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;所述系统中的第六服务器,用于将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联;其中,所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器、所述第五服务器以及所述第六服务器中的任意两个服务器为相同服务器或不同服务器。
可选的,所述第一服务器用于:运行Redis的dockerfile文件,生成Redis镜像,所述Redis镜像配置了Redis的至少一个运行服务器;所述第二服务器用于:运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,所述ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;所述第三服务器用于:运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,所述RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;所述第四服务器用于:运行Tomcat的dockerfile文件,生成Tomcat镜像,所述Tomcat镜像配置了Tomcat的至少一个运行服务器。
可选的,所述第五服务器用于:将所述Redis镜像推送到所述Redis镜像配置的各个运行服务器上运行;和,将所述ZooKeeper镜像推送到所述ZooKeeper镜像配置的各个运行服务器上运行;和,将所述RabbitMQ镜像推送到所述RabbitMQ镜像配置的各个运行服务器上运行;和,将所述Tomcat镜像推送到所述Tomcat镜像配置的各个运行服务器上运行。
可选的,所述Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件;所述第一服务器用于:运行所述主节点dockerfile文件,生成Redis主节点镜像,所述Redis主节点镜像配置了Redis的主节点运行服务器;和,运行所述从节点dockerfile文件,生成Redis从节点镜像,所述Redis从节点镜像配置了Redis的至少一个从节点运行服务器;所述第五服务器用于:将所述Redis主节点镜像推送到所述Redis主节点镜像配置的主节点运行服务器上运行;和,将所述Redis从节点镜像推送到所述Redis从节点镜像配置的各个从节点运行服务器上运行。
可选的,所述各个应用对应的镜像中配置了各个应用的最大运行内存。
可选的,所述第五服务器还用于:在根据各个应用对应的镜像创建各个应用对应的集群服务之后,在检测到任一应用的镜像更新时,根据更新后的镜像更新所述任一应用的集群服务。
可选的,所述系统中的第五服务器安装有docker镜像仓库,所述docker swarm集群中的所有服务器共享所述docker镜像仓库;所述第五服务器用于:在所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器生成镜像之后,将生成的各个镜像推送到所述docker镜像仓库中储存;根据所述docker镜像仓库中储存的各个应用对应的镜像创建各个应用对应的集群服务。
本发明实施例第三方面提供一种服务器,所述服务器上安装有docker以及docker镜像仓库,所述服务器与其他M-1个服务器组成一个docker swarm集群,所述docker swarm集群中的所有服务器共享所述docker镜像仓库,M>=1;所述服务器包括:生成单元,用于生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;推送单元,用于将生成的各个镜像推送到所述docker镜像仓库中储存;处理单元,用于根据各个应用对应的镜像创建各个应用对应的集群服务;将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
本发明实施例第四方面提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器、通信接口;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行本发明实施例第一方面所述的方法。
本发明实施例第五方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过docker swarm集群,可以统一研发、测试、生产等环境,将部署开票服务的系统方便地提供给生产、研发、测试等各个环节的人员使用,解决了现有技术部署开票服务难度大的技术问题;对于每个应用软件,最少只需要创建一次镜像,后续输入创建各个应用的集群服务的命令就可以将各个应用的镜像推送到对应的运行服务器上运行,实现各个应用的服务集群的部署,相较于现有技术,能够避免大量的重复性部署工作,有效缩减服务部署时间、节约了成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中部署开票服务的方法的流程示意图;
图2为本发明实施例中部署开票服务的系统的结构示意图;
图3为本发明实施例中服务器的结构示意图;
图4为本发明实施例中电子设备的结构示意图。
具体实施方式
首先介绍下本发明实施例中涉及到的几个应用软件:Redis、ZooKeeper、RabbitMQ以及Tomcat。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、键-值(Key-Value)数据库,并提供多种语言的应用程序编程接口(ApplicationProgramming Interface,API)。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
消息队列(Message Queue,MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。RabbitMQ是一个在高级消息队列协议(Advanced Message Queuing Protocol,AMQP)基础上完成的,可复用的企业消息系统,它遵循Mozilla Public License开源协议。
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat服务器是一个免费的开放源代码的万维网(World Wide Web,Web)应用服务器,属于轻量级应用服务器,是开发、调试JSP(Java Server Pages)程序的首选。
集群服务是指将多个服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
现有技术中部署开票服务的方法为:将Redis,ZooKeeper,RabbitMQ、Tomcat等应用软件直接部署到相应服务器上,且针对每一个应用软件,都需要将其部署在多个服务器上,使得安装有同一应用软件的多个服务器构成该应用的集群服务。
例如,Redis的主从服务的部署至少需要两台服务器,每一台上分别部署Redis,Redis的安装步骤为:下载并解压Redis二进制文件,安装gcc依赖包,使用make进行编译文件,再使用make install安装Redis,将编译生成的可执行脚本放在Redis目录的bin目录下,再Redis目录下新建log,data目录,然后将Redis.conf文件复制到/etc/Redis目录下,修改配置文件,修改对外网际协议(Internet Protocol,IP)地址和端口,修改日志级别和日志路径,修改数据文件路径和名称,打开appendonly进行数据的持久化,如果是从节点,还需要添加slaveof配置进行Redis主从的配置。
例如,ZooKeeper集群服务的部署需要至少需要三台服务器,在每台服务器上分别安装ZooKeeper应用软件软件。ZooKeeper的安装步骤为:首先安装Java语言的软件开发工具包((Java Development Kit,JDK),然后配置JDK的环境变量,然后下载并解压ZooKeeper的安装包,在安装包下新建data和log目录,然后复制conf目录下的zoo_sample.cfg文件为zoo.cfg文件,修改zoo.cfg文件,配置数据存储目录,日志目录和ZooKeeper集群各个节点的ip及端口号。并且需要在各个服务器上的ZooKeeper的data目录下新建myid文件,将zoo.cfg文件中对应的id写入myid文件中。
例如,RabbitMQ集群服务的部署至少需要三个节点,即至少需要在三台服务器上执行安装RabbitMQ的工作。现有的RabbitMQ集群服务的部署方案是:先安装单节点RabbitMQ,然后进行RabbitMQ的集群配置,首先需要修改主机名和/etc/hosts文件,安装erlang环境,然后进行RabbitMQ的安装,安装之后还需要对RabbitMQ进行配置,安装监控管理插件,添加管理员用户,三个节点安装配置完成后,再进行RabbitMQ集群的配置,将三台服务器上的.erlang.cookie文件内容和权限都保持一致,设置完.erlang.cookie文件后,需要关闭RabbitMQ服务,再使用detached参数重新启动RabbitMQ,执行命令将RabbitMQctljoin_cluster添加到集群,然后再创建rabitmq的集群策略。
例如,Tomcat集群服务的部署需要安装java jdk,然后下载解压Tomcat安装包,进行Tomcat的配置及调优,然后将开票服务放入Tomcat的webapp目录下。
但是,以上这种开票服务的部署方案存在诸多问题,比如:(1)各个应用软件的生产环境与研发、测试环境不一致,导致部署难度大;(2)针对每一个应用,在需要部署该应用的服务器上,都需要技术人员执行一套完整的安装流程,因此部署的重复性工作较多,导致整个开票服务的部署耗时长,成本高。
为了解决现有技术存在的上述技术问题,本发明实施例提供一种部署开票服务的方法及系统,通过在各个服务器上安装docker,并建立docker swarm集群,使用dockerfile文件构建各个应用的镜像,使得技术人员可以针对每个应用执行一条命令就可以将各个应用的镜像推送到相应服务器上运行,进而建立各个应用对应的集群服务。本发明实施例技术方案能够统一研发、测试、生产等环境,将部署开票服务的系统方便地提供给生产、研发、测试等各个环节的人员使用,解决了现有技术部署开票服务难度大的技术问题,同时避免了大量的重复性部署工作,可有效缩减部署时间、节约成本。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例的描述中“多个”,是指两个或两个以上。
本发明实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例一
本发明实施例一提供一种部署开票服务的方法,应用于一开票服务器系统,该系统包括M个服务器,M>=1。参照图1,该方法包括以下步骤:
步骤101:在M个服务器上安装docker,并将所述M个服务器组成一个docker swarm集群;
步骤102:调用所述docker swarm集群,生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;
步骤103:调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;
步骤104:将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
在上述步骤101中,安装docker、组件docker swarm集群的具体实现方式但不限于以下两种实现方式:(1)技术人员手动在每台服务器上安装docker,并将M个docker服务器组建为一个docker swarm集群;(2)作为管理节点的服务器向所述M服务器发送安装docker和创建docker swarm集群的指令,通过管理节点的服务器的控制完成安装docker、组建docker swarm集群的工作。其中,管理节点的服务器可以是所述M个服务器中的其中一台服务器,也可以是除所述M个服务器之外的与所述M个服务器通信连接的其他服务器,本发明实施例不做具体限制。
在上述步骤102中,所述调用所述docker swarm集群,生成创建Redis集群服务、RabbitMQ集群服务、ZooKeeper集群服务、以及Tomcat集群服务所需要的镜像,包括:在M个服务器中的至少一台服务器上运行Redis的dockerfile文件,生成Redis镜像,Redis镜像配置了Redis的至少一个运行服务器;和,在M个服务器中的至少一台服务器上运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;和,在M个服务器中的至少一台服务器上运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;和,在M个服务器中的至少一台服务器上运行Tomcat的dockerfile文件,生成Tomcat镜像,Tomcat镜像配置了Tomcat的至少一个运行服务器。
在具体实施过程中,运行Redis、ZooKeeper、RabbitMQ、Tomcat中每个应用的dockerfile文件的服务器的数量可以是一个,也可以是多个,本发明实施例不做具体限制。
例如,第一服务器运行Redis的dockerfile文件,生成Redis镜像,Redis镜像配置了Redis的至少一个运行服务器;第二服务器运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;第三服务器运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;第四服务器运行Tomcat的dockerfile文件,生成Tomcat镜像,Tomcat镜像配置了Tomcat的至少一个运行服务器。其中,第一服务器、第二服务器、第三服务器、第四服务器中的任意两个服务器为相同服务器或不同服务器,本发明实施例不做具体限制。
其中,Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件。对应的,第一服务器具体可用于执行:运行主节点dockerfile文件,生成Redis主节点镜像,Redis主节点镜像配置了Redis的主节点运行服务器;和,运行从节点dockerfile文件,生成Redis从节点镜像,Redis从节点镜像配置了Redis的至少一个从节点运行服务器。
其中,指示第一服务器、第二服务器、第三服务器、第四服务器执行上述方法的具体实现方式包括但不限于以下两种实现方式:(1)技术人员手动向第一服务器、第二服务器、第三服务器、第四服务器输入命令,以指示各个服务器创建相应的应用的镜像;(2)作为管理节点的服务器向第一服务器发送创建Redis镜像的指令,管理节点的服务器向第二服务器发送创建ZooKeeper镜像的指令,管理节点的服务器向第三服务器发送创建RabbitMQ镜像的指令,管理节点的服务器向第四服务器发送创建Tomcat镜像的指令,以指示第一服务器、第二服务器、第三服务器、第四服务器创建对应的应用镜像。其中,管理节点的服务器可以是所述M个服务器中的其中一台服务器,也可以是除所述M个服务器之外的与所述M个服务器通信连接的其他服务器,本发明实施例不做具体限制。
在具体实施过程中,还可以在第五服务器(M个服务器中的任意一个服务器,与第一服务器、第二服务器、第三服务器、第四服务器中的任一服务器为相同服务器或者不同服务器)上安装有docker镜像仓库,M个服务器共享docker镜像仓库。在执行上述步骤102生成各个应用对应的的镜像之后,方法还包括:将生成的各个镜像推送到第五服务器的docker镜像仓库中储存。
在上述步骤103中,调用docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务,具体包括:第五服务器根据docker镜像仓库中储存的Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务。
具体的,第五服务器将docker镜像仓库中储存的Redis镜像推送到Redis镜像配置的各个运行服务器上运行;和,第五服务器将docker镜像仓库中储存的ZooKeeper镜像推送到ZooKeeper镜像配置的各个运行服务器上运行;和,第五服务器将docker镜像仓库中储存的RabbitMQ镜像推送到RabbitMQ镜像配置的各个运行服务器上运行;和,第五服务器将docker镜像仓库中储存的Tomcat镜像推送到Tomcat镜像配置的各个运行服务器上运行。
其中,第五服务器将Redis镜像推送到Redis镜像配置的各个运行服务器上运行,具体包括:Redis主节点镜像推送到Redis的主节点运行服务器上运行;和,Redis从节点镜像推送到Redis的各个从节点运行服务器上运行。
其中,指示第五服务器执行上述方法的方式包括但不限于以下两种实现方式:(1)技术人员向第五服务器输入命令,指示第五服务器将各个镜像推送到其配置的各个运行服务器上运行;(2)作为管理节点的服务器向第五服务器发送命令,指示第五服务器将各个镜像推送到其配置的各个运行服务器上运行,其中管理节点的服务器可以是所述M个服务器中的其中一台服务器,也可以是除所述M个服务器之外的与所述M个服务器通信连接的其他服务器,本发明实施例不做具体限制。
在上述步骤104中,可以通过第六服务器(M个服务器中的任意一个服务器,与第一服务器、第二服务器、第三服务器、第四服务器、第五服务器中的任一服务器为相同服务器或者不同服务器)将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联,使得Tomcat的集群服务分别连接Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务的高可用环境。
对应的,指示第六服务器执行上述方法的具体实现方式包括但不限于以下两种实现方式:(1)技术人员向第六服务器输入命令,指示第六服务器将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联;(2)作为管理节点的服务器向第六服务器发送命令,指示第六服务器将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联。其中,管理节点的服务器可以是所述M个服务器中的其中一台服务器,也可以是除所述M个服务器之外的与所述M个服务器通信连接的其他服务器,本发明实施例不做具体限制。
需要说明的是,在本发明实施例上述方法步骤中,部署开票服务使用到的应用软件是以Redis,ZooKeeper,RabbitMQ,Tomcat为例,在具体实施过程中,开票服务使用到的应用软件还可以只是以上四个应用软件中的部分,还可以包括有其他类型的应用软件,还可以采用其他应用软件代替以上四个中的部分甚至全部应用软件,本发明实施例不做具体限制。如果还有其他类型的应用软件,其对应的集群服务的部署方法可以参照Redis,ZooKeeper,RabbitMQ,Tomcat等的集群服务的部署方法。
在上述方案中,通过在M个服务器上安装docker,基于M个服务器建立dockerswarm集群,然后使用各个应用的dockerfile文件构建各个应用的镜像,最后将各个应用的镜像推送到其配置的运行服务器上运行,就可以构建起各个应用对应的集群服务,进而实现开票服务系统的部署。上述方案至少具有如下技术效果或优点:1)通过docker swarm集群,可以统一研发、测试、生产等环境,将部署开票服务的系统方便地提供给生产、研发、测试等各个环节的人员使用,解决了现有技术部署开票服务难度大的技术问题;2)对于每个应用软件,最少只需要创建一次镜像,后续输入创建各个应用的集群服务的命令就可以将各个应用的镜像推送到对应的运行服务器上运行,实现各个应用的服务集群的部署,相较于现有技术,能够避免大量的重复性部署工作,有效缩减服务部署时间、节约了成本;3)各个应用的服务可以指定所在的服务器,也可以根据docker内置的算法寻找当前资源空闲较大的服务器进行docker服务的分配,实现更高开票服务性能;4)由于docker要额外的虚拟化管理程序的支持,它是内核级的虚拟化,可以实现更高开票服务性能,对资源的额外需求低。
可选的,Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用的镜像配置了对应的最大运行内存。
通过本方式,可以对开票服务系统的各个应用进行资源限额,清晰地规划资源消耗,避免服务器因应用的运行资源不足导致宕机等问题。
可选的,在根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务之后,所述方法还包括:在检测到任一应用的镜像更新时,调用所述docker swarm集群,根据更新后的镜像更新所述任一应用的集群服务。
当技术人员需要更新Redis、ZooKeeper、RabbitMQ以及Tomcat中任意应用的集群服务,或新增其他应用的集群服务时,可以通过重新编写dockerfile文件,并运行新编写的dockerfile文件生成新的镜像,然后将生成的镜像推送到对应的服务器上进行运行,即可实现整个应用的集群服务的更新。
通过本方式,只需要修改某个应用的dockerfile文件的配置,就可以实现该应用的集群服务的更新,可达到自动化并且高效的容器管理效果。
可选的,在具体实施过程中,可以通过docker的images功能查看各个应用的所有版本的镜像。结合上述更新方案,还对各个应用的集群服务进行版本升级、版本退回等操作。
通过本方式,技术人员可以方便的了解开票服务系统中各个应用的版本状况,减轻技术人员对开票服务系统的运维工作难度,保障开票服务的可靠性,安全性。
可选的,当需要对开票服务系统进行服务器迁移时,可以将镜像仓库和/或各个服务器上的镜像进行打包,并在新的服务器上运行各个应用对应的镜像。
通过本方式,能够简化服务器迁移步骤,提高服务器迁移的效率和安全性。
为了便于更加清楚地理解本发明实施例提供的技术方案,接下来例举其中一种可能的完整的部署流程:
参照图2,假设系统中共有三台服务器(即M=3),分别为服务器201、服务器202、服务器203。其中,服务器201的IP地址为192.168.15.128,服务器202的IP地址为192.168.15.129,服务器203的IP地址为192.168.15.130。对该系统进行开票服务的部署的方法如下:
组建docker swarm集群,创建docker镜像仓库。具体的,在服务器201、服务器202、服务器203分别安装docker软件,组建docker swarm集群;然后在服务器201上执行命令“docker pull registry”,安装docker私有仓库;然后在服务器201上执行命令执行命令“docker run-d-p 5000:5000--name registry--restart=always-v/opt/data:/var/lib/registry registry”,运行其中一个镜像仓库;然后在服务器201、服务器202、服务器203上配置/etc/docker/daemon.json文件,加入内容{"insecure-registries":["192.168.15.128:5000"]},以使三台服务器共用该镜像仓库;
在服务器201上创建Redis主从镜像、RabbitMQ镜像、ZooKeeper镜像、Tomcat镜像,并将创建的镜像推送到镜像仓库储存。
然后分别执行Redis、RabbitMQ、ZooKeeper、Tomcat的docker-stack.yml文件,就可以分别在服务器201和服务器202上运行Redis主从服务,在服务器201、服务器202、服务器203上运行RabbitMQ服务,在服务器201、服务器202、服务器203上运行ZooKeeper服务,在服务器201、服务器202、服务器203上运行Tomcat服务。
接下来对Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务的创建过程分别进行详细介绍:
一、Redis集群服务:
使用dockerfile构建Redis主节点的docker镜像。以下为Redis的主节点dockerfile文件的内容:
其中,start.sh的内容如下:
该dockerfile文件被执行时,基于centos7.2.1511基础镜像生成Redis主节点镜像。该镜像安装并配置了Redis的master节点,并暴露了Redis的6379端口,将Redis的data目录和log目录设置了挂载卷。
使用dockerfile构建Redis从节点的docker镜像。以下为Redis的从节点dockerfile文件的内容:
start.sh与Redis主节点相同,该dockerfile会基于centos7.2.1511基础镜像生成Redis的从节点的镜像。该镜像安装并配置了Redis的master节点,并暴露了Redis的6379端口,将Redis的data目录和log目录设置了挂载卷。
使用docker部署Redis主从的集群服务,使用了docker stack脚本,Redis的docker-stack.yml脚本如下所示:
该脚本设置了两个Redis服务,一个为Redis主节点服务,一个为Redis从节点服务,每个服务各有一个Redis实例,并设置了资源限额,对每个服务的Redis的数据目录和日志目录进行了挂载,并且暴露了Redis主节点的端口,提供对外的连接。
综上所述,Redis主从的微服务部署方案,只需要执行三条命令即可部署一套Redis主从服务,即:
1)创建Redis主节点镜像,镜像名前缀为镜像仓库地址:
“docker build-t 192.168.15.128:5000/Redis-master.”
2)创建Redis从节点镜像:
“docker build-t 192.168.15.128:5000/Redis-slave.”
3)将主节点镜像上传到镜像仓库:
“docker push 192.168.15.128:5000/Redis-master”
4)将从节点镜像上传到镜像仓库:
“docker push 192.168.15.128:5000/Redis-slave”
5)创建Redis的docker集群服务:
“docker stack deploy-c docker-stack.yml Redis”
在以上几条命令被执行后,就会在三台服务器的其中两台服务器上(如服务器202、服务器203)分别运行一个Redis主节点实例和一个Redis从节点实例。
二、ZooKeeper集群服务:
使用dockerfile构建ZooKeeper集群服务所需的镜像,ZooKeeper的dockerfile文件的内容如下所示:
其中,启动脚本文件config-and-run.sh内容如下所示:
该dockerfile文件被执行时,会基于centos7.2.1511基础镜像生成ZooKeeper镜像,该镜像暴露了ZooKeeper的2181端口,并提供了ZooKeeper的data目录和log目录的挂载。
使用docker部署ZooKeeper集群服务,使用了docker stack脚本,ZooKeeper的docker-stack.yml脚本如下所示:
该脚本设置了三个ZooKeeper的服务,分布在三台服务器上,每个服务一个实例,组成了一个ZooKeeper的集群服务,每个ZooKeeper服务设置了资源限额和挂载了data目录和日志目录。并且通过placement标签,将ZooKeeper实例部署在了特定的服务器上,其他服务可以通过2181,2182,2183端口访问ZooKeeper服务。
综上所述,ZooKeeper集群的微服务部署方案,只需要执行三条命令即可部署一套ZooKeeper集群服务,即:
1)创建ZooKeeper镜像:
“docker build-t 192.168.15.128:5000/zk:v3.4.10.”
2)将镜像上传到镜像仓库:
“docker push 192.168.15.128:5000/zk:v3.4.10”
3)创建ZooKeeper集群的docker微服务:
“docker stack deploy-c docker-stack.yml zk”
在以上几条命令被执行后,就会在三台服务器分别运行一个ZooKeeper实例。
三、RabbitMQ集群服务:
使用dockerfile构建RabbitMQ集群服务所需的镜像,RabbitMQ的dockerfile文件的内容如下所示:
启动脚本文件start.sh的内容如下所示:
使用该dockerfile文件可以创建出基于centos7.2.1511的RabbitMQ镜像,该镜像根据环境变量配置了RabbitMQ集群的erlang.cookie文件,该dockerfile中未指定端口及挂载目录,这些可以通过stack文件进行指定。
利用docker微服务部署RabbitMQ集群服务,使用了docker stack脚本,RabbitMQ的docker-stack.yml脚本如下所示:
该脚本设置了三个RabbitMQ的集群服务,分布在三台服务器上,每个服务一个实例,所有实例组成了一个RabbitMQ的集群,每个RabbitMQ服务设置了资源限额,对RabbitMQ主节点进行了数据持久化。并且通过placement标签,将RabbitMQ实例部署在了特定的服务器上,通过环境变量的配置指定了RabbitMQ的erlang.cookie的内容及管理端的用户名密码等内容。
综上所述,RabbitMQ集群的微服务部署方案,只需要执行三条命令即可部署一套RabbitMQ集群服务,即:
1)创建RabbitMQ镜像:
“docker build-t 192.168.15.128:5000/mq456:v1.”
2)将镜像上传到docker镜像仓库:
“docker push 192.168.15.128:5000/mq456:v1”
3)创建RabbitMQ集群的docker微服务:
“docker stack deploy-c docker-stack.yml mq”
在以上几条命令被执行后,就会在三台服务器中的两台服务器上分别运行一个RabbitMQ实例,组成一个RabbitMQ集群服务。
四、Tomcat集群服务:
使用dockerfile构建Tomcat集群服务所需的镜像,Tomcat的dockerfile文件的内容如下所示:
使用docker部署Tomcat集群服务,使用了docker stack脚本,Tomcat的docker-stack.yml脚本如下所示:
该脚本设置了三个Tomcat开票服务实例的高可用服务,每个Tomcat开票服务实例设置了资源限额,对Tomcat开票服务的log目录进行了数据持久化。开票服务连接了Redis、ZooKeeper、RabbitMQ的高可用环境。
综上所述,Tomcat集群的微服务部署方案,只需要执行三条命令即可部署一套Tomcat集群服务,即:
1)创建Tomcat镜像:
“docker build-t 192.168.15.128:5000/Tomcat-kpfw.”
2)将Tomcat镜像上传到docker镜像仓库
“docker push 192.168.15.128:5000/Tomcat-kpfw”
3)创建RabbitMQ集群的docker微服务:
“docker stack deploy-c docker-stack.yml kpfw”
在以上几条命令被执行后,就会在三台服务器分别运行一个Tomcat实例。并且,当客户端访问任意一个服务器的开票服务,这三台的Tomcat开票服务都可以接收到服务请求。
在上述方案中,通过docker swarm集群统一了研发、测试、生产等环境,可以将部署开票服务的系统方便地提供给生产、研发、测试等各个环节的人员使用,解决了现有技术部署开票服务难度大的技术问题;并且,对于每个应用软件,最少只需要创建一次镜像,后续输入创建各个应用的集群服务的命令就可以将各个应用的镜像从镜像仓库推送到对应的运行服务器上运行,实现各个应用的服务集群的部署,相较于现有技术,能够避免大量的重复性部署工作,有效缩减服务部署时间、节约了成本。
实施例二
本发明实施例二提供一种部署开票服务的系统,用于实现本发明实施例一所述的方法。所述系统包括M个服务器,所述系统中每个服务器安装有docker,所述M个服务器组成一个docker swarm集群,M>=1;
所述系统中的第一服务器,用于生成Redis镜像;
所述系统中的第二服务器,用于生成ZooKeeper镜像;
所述系统中的第三服务器,用于生成RabbitMQ镜像;
所述系统中的第四服务器,用于生成Tomcat镜像;
所述第五服务器用于:根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;
所述系统中的第六服务器,用于将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联;
其中,所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器、所述第五服务器以及所述第六服务器中的任意两个服务器为相同服务器或不同服务器。
可选的,所述第一服务器用于:
运行Redis的dockerfile文件,生成Redis镜像,所述Redis镜像配置了Redis的至少一个运行服务器;
所述第二服务器用于:运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,所述ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;
所述第三服务器用于:运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,所述RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;
所述第四服务器用于:运行Tomcat的dockerfile文件,生成Tomcat镜像,所述Tomcat镜像配置了Tomcat的至少一个运行服务器。
可选的,所述第五服务器用于:
将所述Redis镜像推送到所述Redis镜像配置的各个运行服务器上运行;和
将所述ZooKeeper镜像推送到所述ZooKeeper镜像配置的各个运行服务器上运行;和
将所述RabbitMQ镜像推送到所述RabbitMQ镜像配置的各个运行服务器上运行;和
将所述Tomcat镜像推送到所述Tomcat镜像配置的各个运行服务器上运行;和
可选的,所述Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件;
所述第一服务器用于:运行所述主节点dockerfile文件,生成Redis主节点镜像,所述Redis主节点镜像配置了Redis的主节点运行服务器;和,运行所述从节点dockerfile文件,生成Redis从节点镜像,所述Redis从节点镜像配置了Redis的至少一个从节点运行服务器;
所述第五服务器用于:将所述Redis主节点镜像推送到所述Redis主节点镜像配置的主节点运行服务器上运行;和,将所述Redis从节点镜像推送到所述Redis从节点镜像配置的各个从节点运行服务器上运行。
可选的,所述各个应用对应的镜像中配置了各个应用的最大运行内存。
可选的,所述第五服务器还用于:在根据各个应用对应的镜像创建各个应用对应的集群服务之后,在检测到任一应用的镜像更新时,根据更新后的镜像更新所述任一应用的集群服务。
可选的,所述系统中的第五服务器安装有docker镜像仓库,所述docker swarm集群中的所有服务器共享所述docker镜像仓库;所述第五服务器用于:
在所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器生成镜像之后,将生成的各个镜像推送到所述docker镜像仓库中储存;
根据所述docker镜像仓库中储存的各个应用对应的镜像创建各个应用对应的集群服务。
以上各个服务器执行操作的具体实现方式可以参照本发明实施例一中各个服务器执行的对应的方法步骤,本发明实施例不再赘述。
实施例三
本发明实施例三提供一种服务器,用于执行上述实施例一种的部署开票服务的方法,所述服务器上安装有docker以及docker镜像仓库,所述服务器与其他M-1个服务器组成一个docker swarm集群,所述docker swarm集群中的所有服务器共享所述docker镜像仓库,M>=1。
参照图3,所述服务器包括:
生成单元301,用于生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;
推送单元302,用于将生成的各个镜像推送到所述docker镜像仓库中储存;
处理单元303,用于根据各个应用对应的镜像创建各个应用对应的集群服务;将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
以上各单元所执行操作的具体实现方式可以参照本发明实施例一中对应的方法步骤,本发明实施例不再赘述。
实施例四
本发明实施例四提供一种电子设备,用于执行本发明实施例一种的部署开票服务的方法。参照图4,该设备包括:
至少一个处理器401,以及
与所述至少一个处理器401通信连接的存储器402、通信接口403;
其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述至少一个处理器401通过执行所述存储器402存储的指令,利用所述通信接口403执行本发明实施例一所述的方法。
实施例五
本发明实施例五提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例一所述的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (17)

1.一种部署开票服务的方法,其特征在于,所述方法包括:
在M个服务器上安装docker,并将所述M个服务器组成一个docker swarm集群,M>=1;
调用所述docker swarm集群,生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;
调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;
将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
2.如权利要求1所述的方法,其特征在于,所述调用所述docker swarm集群,生成创建Redis集群服务、RabbitMQ集群服务、ZooKeeper集群服务、以及Tomcat集群服务所需要的镜像,包括:
在所述M个服务器中的至少一台服务器上运行Redis的dockerfile文件,生成Redis镜像,所述Redis镜像配置了Redis的至少一个运行服务器;和
在所述M个服务器中的至少一台服务器上运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,所述ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;和
在所述M个服务器中的至少一台服务器上运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,所述RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;和
在所述M个服务器中的至少一台服务器上运行Tomcat的dockerfile文件,生成Tomcat镜像,所述Tomcat镜像配置了Tomcat的至少一个运行服务器。
3.如权利要求2所述的方法,其特征在于,所述调用所述docker swarm集群,根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务,包括:
在所述Redis镜像配置的各个运行服务器上运行所述Redis镜像;和
在所述ZooKeeper镜像配置的各个运行服务器上运行所述ZooKeeper镜像;和
在所述RabbitMQ镜像配置的各个运行服务器上运行所述RabbitMQ镜像;和
在所述Tomcat镜像配置的各个运行服务器上运行所述Tomcat镜像。
4.如权利有要求3所述的方法,其特征在于,所述Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件;
所述在所述M个服务器中的至少一台服务器上运行Redis的dockerfile文件,生成Redis镜像,包括:
在所述M个服务器中的至少一台服务器上运行Redis的主节点dockerfile文件,生成Redis主节点镜像,所述Redis主节点镜像配置了Redis的主节点运行服务器;和,在所述M个服务器中的至少一台服务器上运行Redis的从节点dockerfile文件,生成Redis从节点镜像,所述Redis从节点镜像配置了Redis的至少一个从节点运行服务器;
所述在所述Redis镜像配置的各个运行服务器上运行所述Redis镜像,包括:
在Redis的主节点运行服务器上运行所述Redis主节点镜像;和,在Redis的各个从节点运行服务器上运行所述Redis从节点镜像。
5.如权利要求1-4任一项所述的方法,其特征在于,所述各个应用对应的镜像中配置了各个应用的最大运行内存。
6.如权利要求1-4任一项所述的方法,其特征在于,在根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务之后,所述方法还包括:
在检测到任一应用的镜像更新时,调用所述docker swarm集群,根据更新后的镜像更新所述任一应用的集群服务。
7.如权利要求1-4任一项所述的方法,其特征在于,所述M个服务器中的任意一个服务器上安装有docker镜像仓库,所述M个服务器共享所述docker镜像仓库;
在生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像之后,所述方法还包括:
将生成的各个镜像推送到所述docker镜像仓库中储存;
所述根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务,包括:
根据所述docker镜像仓库中储存的Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务。
8.一种部署开票服务的系统,其特征在于,所述系统包括M个服务器,所述系统中每个服务器安装有docker,所述M个服务器组成一个docker swarm集群,M>=1;
所述系统中的第一服务器,用于生成Redis镜像;
所述系统中的第二服务器,用于生成ZooKeeper镜像;
所述系统中的第三服务器,用于生成RabbitMQ镜像;
所述系统中的第四服务器,用于生成Tomcat镜像;
所述第五服务器用于:根据Redis、ZooKeeper、RabbitMQ以及Tomcat中的各个应用对应的镜像创建各个应用对应的集群服务;
所述系统中的第六服务器,用于将Tomcat的集群服务与Redis的集群服务、RabbitMQ的集群服务、ZooKeeper的集群服务分别关联;
其中,所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器、所述第五服务器以及所述第六服务器中的任意两个服务器为相同服务器或不同服务器。
9.如权利要求8所述的系统,其特征在于,所述第一服务器用于:
运行Redis的dockerfile文件,生成Redis镜像,所述Redis镜像配置了Redis的至少一个运行服务器;
所述第二服务器用于:运行ZooKeeper的dockerfile文件,生成ZooKeeper镜像,所述ZooKeeper镜像配置了ZooKeeper的至少一个运行服务器;
所述第三服务器用于:运行RabbitMQ的dockerfile文件,生成RabbitMQ镜像,所述RabbitMQ镜像配置了RabbitMQ的至少一个运行服务器;
所述第四服务器用于:运行Tomcat的dockerfile文件,生成Tomcat镜像,所述Tomcat镜像配置了Tomcat的至少一个运行服务器。
10.如权利要求9所述的系统,其特征在于,所述第五服务器用于:
将所述Redis镜像推送到所述Redis镜像配置的各个运行服务器上运行;和
将所述ZooKeeper镜像推送到所述ZooKeeper镜像配置的各个运行服务器上运行;和
将所述RabbitMQ镜像推送到所述RabbitMQ镜像配置的各个运行服务器上运行;和
将所述Tomcat镜像推送到所述Tomcat镜像配置的各个运行服务器上运行。
11.如权利要求10所述的系统,其特征在于,所述Redis的dockerfile文件包括Redis的主节点dockerfile文件、Redis的从节点dockerfile文件;
所述第一服务器用于:运行所述主节点dockerfile文件,生成Redis主节点镜像,所述Redis主节点镜像配置了Redis的主节点运行服务器;和,运行所述从节点dockerfile文件,生成Redis从节点镜像,所述Redis从节点镜像配置了Redis的至少一个从节点运行服务器;
所述第五服务器用于:将所述Redis主节点镜像推送到所述Redis主节点镜像配置的主节点运行服务器上运行;和,将所述Redis从节点镜像推送到所述Redis从节点镜像配置的各个从节点运行服务器上运行。
12.如权利要求8-11任一项所述的系统,其特征在于,所述各个应用对应的镜像中配置了各个应用的最大运行内存。
13.如权利要求8-11任一项所述的系统,其特征在于,所述第五服务器还用于:在根据各个应用对应的镜像创建各个应用对应的集群服务之后,在检测到任一应用的镜像更新时,根据更新后的镜像更新所述任一应用的集群服务。
14.如权利要求8-11任一项所述的系统,其特征在于,所述系统中的第五服务器安装有docker镜像仓库,所述docker swarm集群中的所有服务器共享所述docker镜像仓库;所述第五服务器用于:
在所述第一服务器、所述第二服务器、所述第三服务器、所述第四服务器生成镜像之后,将生成的各个镜像推送到所述docker镜像仓库中储存;
根据所述docker镜像仓库中储存的各个应用对应的镜像创建各个应用对应的集群服务。
15.一种服务器,其特征在于,所述服务器上安装有docker以及docker镜像仓库,所述服务器与其他M-1个服务器组成一个docker swarm集群,所述docker swarm集群中的所有服务器共享所述docker镜像仓库,M>=1;所述服务器包括:
生成单元,用于生成创建Redis集群服务、ZooKeeper集群服务、RabbitMQ集群服务、以及Tomcat集群服务所需要的镜像;
推送单元,用于将生成的各个镜像推送到所述docker镜像仓库中储存;
处理单元,用于根据各个应用对应的镜像创建各个应用对应的集群服务;将Tomcat的集群服务与Redis的集群服务、ZooKeeper的集群服务、RabbitMQ的集群服务分别关联。
16.一种电子设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行权利要求1-7中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1-7中任一项所述的方法。
CN201711424473.4A 2017-12-25 2017-12-25 一种部署开票服务的方法及系统 Pending CN109960580A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711424473.4A CN109960580A (zh) 2017-12-25 2017-12-25 一种部署开票服务的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711424473.4A CN109960580A (zh) 2017-12-25 2017-12-25 一种部署开票服务的方法及系统

Publications (1)

Publication Number Publication Date
CN109960580A true CN109960580A (zh) 2019-07-02

Family

ID=67021239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711424473.4A Pending CN109960580A (zh) 2017-12-25 2017-12-25 一种部署开票服务的方法及系统

Country Status (1)

Country Link
CN (1) CN109960580A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647580A (zh) * 2019-09-05 2020-01-03 南京邮电大学 分布式容器集群镜像管理主节点、从节点、系统及方法
CN111210288A (zh) * 2019-12-26 2020-05-29 大象慧云信息技术有限公司 基于税控服务器的发票批量开具作业优化调度方法及系统
CN111240608A (zh) * 2019-12-31 2020-06-05 航天信息股份有限公司 一种高性能的发票打印系统
CN111274003A (zh) * 2020-03-04 2020-06-12 山东超越数控电子股份有限公司 一种针对Docker的集群搭建方法
CN111857963A (zh) * 2020-07-28 2020-10-30 山东超越数控电子股份有限公司 一种针对Proxmox VE的容器编排实现方法、装置、设备和介质
CN112288096A (zh) * 2020-10-22 2021-01-29 济南浪潮高新科技投资发展有限公司 一种基于rapidminer的机器学习模型镜像快速构建发布方法
CN112596741A (zh) * 2020-11-16 2021-04-02 新华三大数据技术有限公司 一种视频监控服务部署方法及装置
CN112799692A (zh) * 2021-02-07 2021-05-14 的卢技术有限公司 一种基于docker技术的tomcat应用部署方法及应用

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187500A (zh) * 2015-08-07 2015-12-23 浪潮(北京)电子信息产业有限公司 一种基于容器的分布式存储系统部署方法
CN105630488A (zh) * 2015-12-18 2016-06-01 上海爱数信息技术股份有限公司 一种基于docker容器技术的持续集成实现方法
EP3109758A1 (en) * 2015-06-25 2016-12-28 Alcatel Lucent Method and apparatus for scaling an application
CN106528200A (zh) * 2016-10-08 2017-03-22 广州视睿电子科技有限公司 一种基于docker compose的持续集成方法及装置
CN106712990A (zh) * 2015-11-12 2017-05-24 北大方正集团有限公司 服务部署方法和系统
CN107463432A (zh) * 2017-08-17 2017-12-12 福建中金在线信息科技有限公司 服务器生产环境部署方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3109758A1 (en) * 2015-06-25 2016-12-28 Alcatel Lucent Method and apparatus for scaling an application
CN105187500A (zh) * 2015-08-07 2015-12-23 浪潮(北京)电子信息产业有限公司 一种基于容器的分布式存储系统部署方法
CN106712990A (zh) * 2015-11-12 2017-05-24 北大方正集团有限公司 服务部署方法和系统
CN105630488A (zh) * 2015-12-18 2016-06-01 上海爱数信息技术股份有限公司 一种基于docker容器技术的持续集成实现方法
CN106528200A (zh) * 2016-10-08 2017-03-22 广州视睿电子科技有限公司 一种基于docker compose的持续集成方法及装置
CN107463432A (zh) * 2017-08-17 2017-12-12 福建中金在线信息科技有限公司 服务器生产环境部署方法、装置、电子设备及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647580A (zh) * 2019-09-05 2020-01-03 南京邮电大学 分布式容器集群镜像管理主节点、从节点、系统及方法
CN110647580B (zh) * 2019-09-05 2022-06-10 南京邮电大学 分布式容器集群镜像管理主节点、从节点、系统及方法
CN111210288A (zh) * 2019-12-26 2020-05-29 大象慧云信息技术有限公司 基于税控服务器的发票批量开具作业优化调度方法及系统
CN111240608A (zh) * 2019-12-31 2020-06-05 航天信息股份有限公司 一种高性能的发票打印系统
CN111274003A (zh) * 2020-03-04 2020-06-12 山东超越数控电子股份有限公司 一种针对Docker的集群搭建方法
CN111857963A (zh) * 2020-07-28 2020-10-30 山东超越数控电子股份有限公司 一种针对Proxmox VE的容器编排实现方法、装置、设备和介质
CN112288096A (zh) * 2020-10-22 2021-01-29 济南浪潮高新科技投资发展有限公司 一种基于rapidminer的机器学习模型镜像快速构建发布方法
CN112596741A (zh) * 2020-11-16 2021-04-02 新华三大数据技术有限公司 一种视频监控服务部署方法及装置
CN112596741B (zh) * 2020-11-16 2022-08-30 新华三大数据技术有限公司 一种视频监控服务部署方法及装置
CN112799692A (zh) * 2021-02-07 2021-05-14 的卢技术有限公司 一种基于docker技术的tomcat应用部署方法及应用

Similar Documents

Publication Publication Date Title
CN109960580A (zh) 一种部署开票服务的方法及系统
US10356214B2 (en) Composing monolithic applications based on multi-container applications
US20180373505A1 (en) Systems and methods for transforming service definitions in a multi-service containerized application
CN108011768B (zh) 一种aop拦截式HBase数据存储微服务架构构建方法
JP2022022077A (ja) アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
Taura et al. Design and implementation of GXP make—A workflow system based on make
US20090300619A1 (en) Product independent orchestration tool
CN112417051A (zh) 容器编排引擎资源管理方法及装置、可读介质及电子设备
US11349958B1 (en) Deployment of software releases on datacenters configured in cloud platforms
CN116783581A (zh) 在云平台中配置的数据中心上部署软件发布
CN115421740A (zh) 云原生应用的部署方法和装置
CN117112122A (zh) 一种集群部署方法和装置
US20090300609A1 (en) Combining system blueprints, functional layer, and software bits in parallel development of machines
CN114911518A (zh) 云函数应用发布管理方法、系统、设备及存储介质
US9893936B2 (en) Dynamic management of restful endpoints
US20150067097A1 (en) Managing data distribution to networked client computing devices
US11681585B2 (en) Data migration for a shared database
US20090300610A1 (en) Self-replicating machines
JP2021131897A (ja) スケジューリング方法、装置、設備、記憶設備、及びプログラム
CN113377493A (zh) 一种容器云仿真系统及其设计方法
CN110147228A (zh) 命令行编辑组件和方法
US20210216356A1 (en) Single nested multi-item workflow display
Chowhan Hands-on Serverless Computing: Build, Run and Orchestrate Serverless Applications Using AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions
Qadeer et al. Virtual infrastructure orchestration for cloud service deployment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190702

RJ01 Rejection of invention patent application after publication