一种实现能源云服务系统应用模式快速转换的方法与流程

  

一种实现能源云服务系统应用模式快速转换的方法与流程(图1)

  本发明涉及能源云服务技术领域,具体为一种实现能源云服务系统应用模式快速转换的方法。

  能源云平台在设计之初,就考虑到要面向不同的业务模式和用户规模——当部署于小规模企业用户内部,只由该企业使用时,由于小规模企业只有少量的接入设备,数据量和并发处理的业务都不多。对于这种用户,理想的状态是只需要一台服务器即可运行能源云平台;而对于平台型运营的业务模式,将在同一个平台内,为数百家甚至更多的企业客户提供服务。数据量和并发业务数量都很庞大。

  这两种应用场景下,适合采用的技术差异非常大,比如,大型平台适合采用大规模、高并发的并行计算数据库来存储和计算数据,采用数十个甚至更多的服务器同时存储并计算数据。而对于一个数据量不是很大企业内部使用的情况来说,采用并行数据库就过于庞大和复杂了,如果只有一台服务器,不但发挥不出高并发数据库的优势,还会导致系统的维护难度大大增加,需要专门的并行数据库维护团队,对于一般的企业来说,这个维护成本根本无法承受。

  对于企业内部独立使用的场景,适合采用成熟、易用的传统关系型数据库,足够处理企业内部的数据计算,并且维护简单,部署和维护成本很低。而如果本系统为这种应用场景而设计,采用传统关系型数据库,在作为大型平台应用时,数据存储量和计算的响应速度都完全达不到要求,成为一套无法使用的摆设。

  如果为两种场景,采用不同的模式进行设计和开发,使用两套独立的代码,又无异于开发了两套系统。开发量及今后升级修改、测试的工作量和周期都翻倍增加,为此,我们提出一种实现能源云服务系统应用模式快速转换的方法。

  本发明的目的在于提供一种实现能源云服务系统应用模式快速转换的方法,以解决上述背景技术中提出的问题。

  为实现上述目的,本发明提供如下技术方案:一种实现能源云服务系统应用模式快速转换的方法,包括如下步骤:

  (1)建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;

  (2)建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;

  (3)建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  优选的,所述步骤(1)中提到的兼容方案是指不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id。

  优选的,所述步骤(1)中提到的兼容方案是指避免使用postgresql8.4以后新增的技术手段;比如对json数据格式的使用;采用子表的方式来存储数据对象,而不是用json格式将其存放在主表的单个字段中。

  优选的,所述步骤(1)中提到的兼容方案是指对分表方式进行设计,使其符合greenplum在分布式存储及mapreduce运算时,能够最大限度的均匀分布命中的数据,进而发挥分布式并行数据库的优势。

  优选的,bwin必赢官方授权平台所述步骤(1)中提到的兼容方案是指在面向小规模用户时,只需要选用postgresql数据库安装部署即可;该数据库维护工作量极小,不需要配备专门的dba;而当作为大型平台运营时,可以搭建数十个节点的greenplum分布式并行数据库,并配备专门的运维团队进行管理和支持。

  与现有技术相比,本发明的有益效果是:本发明可以确保系统能在两种模式的数据库间完好兼容,当部署于小规模企业时,只需要保留一个业务逻辑处理节点即可,使用容器复制即可部署,几无工作量;而当应用于大规模企业或众多企业共享的大型平台时,可以快速通过docker复制部署数量众多的业务逻辑处理节点,通过采用kafka作为信息流收发的组件,由于kafka本身就是面向动态伸缩的云计算模式设计的,可以非常方便地组建节点集群,本发明解决了能源云平台不能同时满足应用于众多企业共用的平台运营模式和中小规模企业内部使用模式的问题。

  下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  本发明提供一种技术方案:一种实现能源云服务系统应用模式快速转换的方法,包括如下步骤:

  (1)建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;

  (2)建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;

  (3)建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  首先建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;然后建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;最后建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  步骤(1)中提到的兼容方案是指不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id。

  首先建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;其中兼容方案是指不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id;然后建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;最后建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  步骤(1)中提到的兼容方案是指避免使用postgresql8.4以后新增的技术手段;比如对json数据格式的使用;采用子表的方式来存储数据对象,而不是用json格式将其存放在主表的单个字段中。

  首先建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;其中兼容方案包括:第一方面,不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id;第二方面,避免使用postgresql8.4以后新增的技术手段;比如对json数据格式的使用;采用子表的方式来存储数据对象,而不是用json格式将其存放在主表的单个字段中;然后建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;最后建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  步骤(1)中提到的兼容方案是指对分表方式进行设计,使其符合greenplum在分布式存储及mapreduce运算时,能够最大限度的均匀分布命中的数据,进而发挥分布式并行数据库的优势。

  首先建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;其中兼容方案包括:第一方面,bwin必赢官方授权平台不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id;第二方面,避免使用postgresql8.4以后新增的技术手段;比如对json数据格式的使用;采用子表的方式来存储数据对象,而不是用json格式将其存放在主表的单个字段中;第三方面,对分表方式进行设计,使其符合greenplum在分布式存储及mapreduce运算时,能够最大限度的均匀分布命中的数据,进而发挥分布式并行数据库的优势;然后建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;最后建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  步骤(1)中提到的兼容方案是指在面向小规模用户时,只需要选用postgresql数据库安装部署即可;该数据库维护工作量极小,不需要配备专门的dba;而当作为大型平台运营时,可以搭建数十个节点的greenplum分布式并行数据库,并配备专门的运维团队进行管理和支持。

  首先建立能在两种模式间快速转换的数据存储和计算机制,为小规模运行的关系型数据库选择postgresql,采用兼容8.4版本的语法,并作出向greenplum的兼容方案,就可以确保系统能在两种模式的数据库间完好兼容;其中兼容方案包括:第一方面,不使用自增长id,由业务系统创建一个全局id生成池,该池负责确保生成id的唯一性,并能在消费者取走一个id后,能够立即生成下一个id;同时要引入同步锁机制,以确保完全并发的取id操作不会取出相同的id;第二方面,避免使用postgresql8.4以后新增的技术手段;比如对json数据格式的使用;采用子表的方式来存储数据对象,而不是用json格式将其存放在主表的单个字段中;第三方面,对分表方式进行设计,使其符合greenplum在分布式存储及mapreduce运算时,能够最大限度的均匀分布命中的数据,进而发挥分布式并行数据库的优势;第四方面,在面向小规模用户时,只需要选用postgresql数据库安装部署即可;该数据库维护工作量极小,不需要企业配备专门的dba;而当作为大型平台运营时,可以搭建数十个节点的greenplum分布式并行数据库,并配备专门的运维团队进行管理和支持;然后建立能在两种模式间快速转换的业务逻辑处理能力机制,采用tomcat作为处理业务逻辑运算的web容器,并采用nginx作为前端负载均衡器,将业务请求均匀的分散到各个tomcat实例上,同时,为了便于快速部署及伸缩,将nginx,tomcat分别采用docker容器进行部署;当需要扩容节点,增减业务处理单元的数量时,只需要快速复制docker容器即可,无需反复安装和配置;最后建立能在两种模式间快速转换的信息流收发机制,采用kafka作为信息流收发的组件,接收来自各个accs服务器传输的大量数据,以及向accs服务器下发的数据;将管理集群的zookeeper和一个最小集合(3个节点)的kafka组成一个最小集群,并将其部署到docker容器中;当小规模部署时,只需要复制一个容器到运行环境中即可完成部署,非常快捷;当作为大型云平台运行时,可以复制多个容器,并将新增容器中的kafka管理节点配置成原有的zookeeper即可完成扩容;需要缩减节点时,关闭需要缩减的节点即可,不需要额外操作。

  本发明可以确保系统能在两种模式的数据库间完好兼容,当部署于小规模企业时,只需要保留一个业务逻辑处理节点即可,使用容器复制即可部署,几无工作量;而当应用于大规模企业或众多企业共享的大型平台时,可以快速通过docker复制部署数量众多的业务逻辑处理节点,通过采用kafka作为信息流收发的组件,由于kafka本身就是面向动态伸缩的云计算模式设计的,可以非常方便地组建节点集群,本发明解决了能源云平台不能同时满足应用于众多企业共用的平台运营模式和中小规模企业内部使用模式的问题。

  尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。