一种基于微服务架构的物联网平台构建方法技术

技术编号:21917475 阅读:37 留言:0更新日期:2019-08-21 13:31
本发明专利技术提供了一种基于微服务架构的物联网平台构建方法,包括以下步骤;S1、对物联网平台划分微服务层级;S2、微服务部署模块使用Docker Swarm工具部署物联网平台的微服务集群,并将微服务信息注册到服务发现中心;S3、通过负载均衡调度模块将客户端请求分发给物联网平台的微服务;S4、服务负载预测模块建立差分整合自回归移动平均模型,计算服务负载预测值;S5、服务性能预测模块根据服务负载预测值和实例数生成性能预测值;S6、容器动态调度模块根据性能预测值进行微服务的水平伸缩。该方法构建的物联网平台根据市场需求变化进行新功能的快速扩展,以及根据实时负载进行容器集群的伸缩,提高了物联网平台的可扩展性。

A Method of Building Internet of Things Platform Based on Microsoft Service Architecture

【技术实现步骤摘要】
一种基于微服务架构的物联网平台构建方法
本专利技术涉及物联网平台构建领域,具体涉及一种基于微服务架构的物联网平台构建方法。技术背景微服务架构将单一应用程序划分为多个小的服务进行独立开发,服务与服务之间通过轻量级的通信机制实现解耦合。这些服务以具体业务进行构建(根据业务上下文选择适当的构建技术和开发工具),并通过自动化部署机制进行服务的部署。Docker容器技术可以为微服务架构系统的实现、部署和维护提供可行的解决方案。相比虚拟机,容器在启动速度、弹性伸缩和资源消耗等方面都有明显优势,更适合微服务架构的应用。基于以上优点,Docker可以有效满足微服务系统在分布式环境中进行多节点多实例运行、部署和维护的需求。同时,采用一个宿主机上部署多个Docker容器,每个容器单独运行一个微服务的模式,可以避免运行虚拟机所带来的设备资源浪费。因此,本专利技术提供一种基于微服务架构的物联网平台构建方法,并针对物联网平台构建过程中所涉及的部署和调度问题,给出相应的解决方案。
技术实现思路
本专利技术的目的在于将微服务架构和Docker容器技术应用到物联网平台中,解决物联网平台的可扩展性和可用性不足的问题,构建多实例部署的分布式物联网平台。本专利技术至少通过如下技术方案之一实现。一种权利要求1所述的物联网平台的构建方法,包括以下步骤:S1、对物联网平台划分微服务层级,分别为接入层、服务层、中间层和基础层;S2、微服务部署模块使用容器集群管理工具DockerSwarm部署物联网平台的微服务集群,并将微服务信息注册到服务发现中心;S3、通过负载均衡调度模块将客户端请求分发给物联网平台的微服务;S4、接着服务负载预测模块通过差分整合自回归移动平均模型(AutoregressiveIntegratedMovingAveragemodel,ARIMA)分析时间序列,计算服务负载预测值。S5、服务性能预测模块根据服务负载预测值和实例数生成性能预测值;S6、容器动态调度模块根据性能预测值进行微服务的水平伸缩。进一步的,步骤S1所述的接入层提供异构设备和平台用户的终端接入组件,以及提供终端访问认证组;所述服务层提供物联网平台与智能设备、用户APP、管理平台和第三方平台的连接和通信组件,通信组件包括应用程序接口(ApplicationProgrammingInterface,API)服务组件、中控服务组件和中转服务组件;所述中间层包含不直接与终端交互的业务逻辑组件,业务逻辑组件包括数据分析组件和日志管理组件;所述基础层为接入层、服务层和中间层提供所需的基础服务组件,基础服务组件包括内存数据库、关系型数据库和消息队列。进一步的,步骤S2所述的DockerSwarm工具是Docker容器的内置集群管理工具,微服务部署模块使用DockerSwarm工具构建Docker容器集群,其中每个容器集群单独部署和运行一个微服务,并采用DockerSwarm工具中的调度器内置的Spread策略,选择Docker容器的部署节点。进一步的,步骤S2所述的服务发现中心用于存储当前容器集群的节点和容器状态,当节点中的容器加入或者退出集群时,节点上的服务注册工具向服务发现中心上报相应事件,服务注册中心将根据上报的事件更新集群状态。进一步的,步骤S3所述的负载均衡调度模块包括服务发现模块、容器注册模块、负载均衡模块和配置更新模块;所述服务发现模块采用Consul集群作为容器集群的服务发现中心,Consul为Docker容器集群提供节点和容器实例的注册和发现服务;所述Consul集群采用Consul开源工具构建,其存在两种服务节点,分别为ConsulServer和ConsulClient,ConsulServer用于保存和复制配置数据,并与ConsulClient以及数据中心通信;ConsulClient则将数据访问请求转发到ConsulServer集群中,对外提供键值对数据的读写功能;ConsulServer集群的构建方式为在宿主机上使用Consul开源工具部署和运行一个Server节点,在运行时指定其为Server模式,如果其不是第一个server节点,则使用加入命令配置第一个Server节点的地址,与第一个Server节点组成集群;Consul集群中所有Swarm工作节点和容器实例的信息都存储在ConsulServer集群中,Consul集群使用Consul集群的表现层状态转换应用程序接口(RESTfulAPI)访问ConsulClient,ConsulClient将请求转发到同一数据中心的ConsulServer,完成Docker容器和节点信息的查询和增删功能;容器注册模块通过部署服务注册工具Registrator实现节点上Docker容器信息的注册和注销,Registrator监听所在Docker引擎的容器的启动和停止事件,并将Docker容器信息以consulservice的形式注册到consul集群中,物联网平台在每个Swarm工作节点运行Registrator工具,以监听并转发容器生存状态到服务发现中心;负载均衡模块采用Nginx负载均衡器实现物联网平台的负载均衡,当有客户端请求到达时,Nginx负载均衡器的内核部分通过查找配置文件,将访问请求映射到相应的定位块,该定位块中的每个配置指令会启动相应的功能模块去完成相应的工作;配置更新模块通过配置更新工具Consul-Template联结服务发现模块和负载均衡模块,实现负载均衡模块配置文件的及时更新,当Consul集群上的服务实例的注册信息发送变化时,Consul-Template及时更新负载均衡模块上所有Nginx反向代理服务器的配置文件,并调用Nginx命令重载配置,以更新负载均衡模块的调度。进一步的,步骤S4中计算服务的负载预测值包括以下步骤:S41、服务负载预测模块获取需要进行负载预测的微服务的名称、分析时间段和预测时间段信息;S42、负载预测模块根据服务名称和分析时间段,到服务监控模块的InfluxDB时序数据库中获取分析时间段内的访问请求数据,并生成服务负载时间序列;S43、通过单位根检验(AugmentedDickey-Fuller,ADF)判断服务负载时间序列是否平稳,单位根检验是检验服务负载时间序列中是否存在单位根,如果存在单位根则服务负载时间序列不具有平稳性,对服务负载时间序列的回归分析将出现伪回归的情况,具体的,单位根检验的原假设是服务负载时间序列有单位根,如果计算得到的统计量小于1%、5%和10%这3个置信度的临界统计值,则可以拒绝原假设,并充分证明该服务负载时间序列呈现平稳性;如果计算得到的统计量大于上述的3个置信度的临界统计值,则将服务负载时间序列进行差分变换,转变为平稳序列;S44、对于不平稳的服务负载时间序列,需要进行d阶差分,即将原始时间序列中t时刻的值减去t-1时刻的值,得到一阶差分序列,如果一阶差分序列不是平稳序列,则继续对新的差分序列进行差分,得到二阶差分序列,如此差分下去,最终得到一个平稳的d阶差分序列,在确定ARIMA(p,d,q)差分阶数d后,采用贝叶斯信息准则(BayesianInformationCriterion,BIC)确定ARIMA模型的阶数p和阶数q;S4本文档来自技高网...

【技术保护点】
1.一种基于微服务架构的物联网平台构建方法,其特征在于,包括以下步骤:S1、对物联网平台划分微服务层级,分别为接入层、服务层、中间层和基础层;S2、微服务部署模块使用容器集群管理工具Docker Swarm部署物联网平台的微服务集群,并将微服务信息注册到服务发现中心;S3、通过负载均衡调度模块将客户端请求分发给物联网平台的微服务;S4、接着服务负载预测模块通过差分整合自回归移动平均模型(Autoregressive Integrated Moving Average model,ARIMA)分析时间序列,计算服务负载预测值。S5、服务性能预测模块根据服务负载预测值和实例数生成性能预测值;S6、容器动态调度模块根据性能预测值进行微服务的水平伸缩。

【技术特征摘要】
1.一种基于微服务架构的物联网平台构建方法,其特征在于,包括以下步骤:S1、对物联网平台划分微服务层级,分别为接入层、服务层、中间层和基础层;S2、微服务部署模块使用容器集群管理工具DockerSwarm部署物联网平台的微服务集群,并将微服务信息注册到服务发现中心;S3、通过负载均衡调度模块将客户端请求分发给物联网平台的微服务;S4、接着服务负载预测模块通过差分整合自回归移动平均模型(AutoregressiveIntegratedMovingAveragemodel,ARIMA)分析时间序列,计算服务负载预测值。S5、服务性能预测模块根据服务负载预测值和实例数生成性能预测值;S6、容器动态调度模块根据性能预测值进行微服务的水平伸缩。2.根据权利要求1所述的物联网平台构建方法,其特征在于,步骤S1所述的接入层提供异构设备和平台用户的终端接入组件,以及提供终端访问认证组;所述服务层提供物联网平台与智能设备、用户APP、管理平台和第三方平台的连接和通信组件,通信组件包括应用程序接口(ApplicationProgrammingInterface,API)服务组件、中控服务组件和中转服务组件;所述中间层包含不直接与终端交互的业务逻辑组件,业务逻辑组件包括数据分析组件和日志管理组件;所述基础层为接入层、服务层和中间层提供所需的基础服务组件,基础服务组件包括内存数据库、关系型数据库和消息队列。3.根据权利要求1所述的物联网平台构建方法,其特征在于,步骤S2所述的DockerSwarm工具是Docker容器的内置集群管理工具,微服务部署模块使用DockerSwarm工具构建Docker容器集群,其中每个容器集群单独部署和运行一个微服务,并采用DockerSwarm工具中的调度器内置的Spread策略,选择Docker容器的部署节点。4.根据权利要求1所述的物联网平台构建方法,其特征在于,步骤S2所述的服务发现中心用于存储当前容器集群的节点和容器状态,当节点中的容器加入或者退出集群时,节点上的服务注册工具向服务发现中心上报相应事件,服务注册中心将根据上报的事件更新集群状态。5.根据权利要求1所述的物联网平台构建方法,其特征在于,步骤S3所述的负载均衡调度模块包括服务发现模块、容器注册模块、负载均衡模块和配置更新模块;所述服务发现模块采用Consul集群作为容器集群的服务发现中心,Consul为Docker容器集群提供节点和容器实例的注册和发现服务;所述Consul集群采用Consul开源工具构建,其存在两种服务节点,分别为ConsulServer和ConsulClient,ConsulServer用于保存和复制配置数据,并与ConsulClient以及数据中心通信;ConsulClient则将数据访问请求转发到ConsulServer集群中,对外提供键值对数据的读写功能;ConsulServer集群的构建方式为在宿主机上使用Consul开源工具部署和运行一个Server节点,在运行时指定其为Server模式,如果其不是第一个server节点,则使用加入命令配置第一个Server节点的地址,与第一个Server节点组成集群;Consul集群中所有Swarm工作节点和容器实例的信息都存储在ConsulServer集群中,Consul集群使用Consul集群的表现层状态转换应用程序接口(RESTfulAPI)访问ConsulClient,ConsulClient将请求转发到同一数据中心的ConsulServer,完成Docker容器和节点信息的查询和增删功能;容器注册模块通过部署服务注册工具Registrator实现节点上Docker容器信息的注册和注销,Registrator监听所在Docker引擎的容器的启动和停止事件,并将Docker容器信息以consulservice的形式注册到consul集群中,物联网平台在每个Swarm工作节点运行Registrator工具,以监听并转发容器生存状态到服务发现中心;负载均衡模块采用Nginx负载均衡器实现物联网平台的负载均衡,当有客户端请求到达时,Ngin...

【专利技术属性】
技术研发人员:刘发贵郑少斌
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1