CN105430030A - 基于osgi技术的可平行扩展的应用服务器 - Google Patents

基于osgi技术的可平行扩展的应用服务器 Download PDF

Info

Publication number
CN105430030A
CN105430030A CN201410472651.0A CN201410472651A CN105430030A CN 105430030 A CN105430030 A CN 105430030A CN 201410472651 A CN201410472651 A CN 201410472651A CN 105430030 A CN105430030 A CN 105430030A
Authority
CN
China
Prior art keywords
cluster
application server
server
index
module
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.)
Granted
Application number
CN201410472651.0A
Other languages
English (en)
Other versions
CN105430030B (zh
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.)
Taima Information Network Technology Co Ltd
Original Assignee
Taima Information Network Technology Co Ltd
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 Taima Information Network Technology Co Ltd filed Critical Taima Information Network Technology Co Ltd
Priority to CN201410472651.0A priority Critical patent/CN105430030B/zh
Publication of CN105430030A publication Critical patent/CN105430030A/zh
Application granted granted Critical
Publication of CN105430030B publication Critical patent/CN105430030B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明揭示了一种基于OSGI技术的可平行扩展的应用服务器,包括网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块;网络通信模块用以实现应用服务器与终端设备的连接;协议转换模块用以实现客户端与服务器之间的协议转换;集群管理模块用以将Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;模块化服务容器用以将所有来自网络通信模块的网络请求先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器从osgi容器中查找到对应的服务,来完成相关的业务处理;监控管理模块用以对业务模块进行监控。本发明可集群、可平行扩展,并能够适应车联网汽车数据采集的高并发需求。

Description

基于OSGI技术的可平行扩展的应用服务器
技术领域
本发明属于车联网技术领域,涉及一种应用服务器,尤其涉及一种基于OSGI技术的可平行扩展的应用服务器。
背景技术
车联网从广义上讲是对车、人、道路、公共信息平台之间信息广泛交互通信。车联网利用先进的传感技术、网络技术、计算技术及控制等技术,对道路和交通进行全面感知,实现多个系统间大范围、大容量数据的交互,对每一辆汽车进行交通全程控制,对每一条道路进行交通全时空控制,以提供交通效率和交通安全为主的网络与应用。
在国内环境下,各车厂对信息开放方面采取保守态度,造成了目前多种异构平台多种协议并存的现状;另一方面,车联网与互联网应用类似,存在高并发特性,对数据实时性、可靠性的要求甚至超过普通互联网应用;此外,车联网面对的终端除了tbox外,还有手机、电脑等终端,对多种开发语言的支持也提出了挑战。
有鉴于此,如今迫切需要设计一种新的车联网应用服务器,以便克服现有服务器的缺陷。
发明内容
本发明所要解决的技术问题是:提供一种基于OSGI技术的可平行扩展的应用服务器,可集群、可平行扩展、支持车联网行业与车辆Tbox通讯的ACP协议、支持异构平台之间的高效二进制协议,并能够适应车联网汽车数据采集的高并发需求。
如今的车联网的现状,对应用服务器中间件提出了一系列的要求,包括:兼容异构平台之间的多种协议,对多种开发语言提供支持,高性能、高并发、可快速集群平行扩展及业务监控等。传统的应用服务器中间件运行于服务器操作系统之上,管理计算资源、网络通讯及数据服务,屏蔽了底层网络和操作系统的复杂与异构,提供标准的服务集,使得整个系统对于其上运行的应用是透明的。传统应用服务器在异构系统之间交互数据都是基于Http协议的Webservice或RestFul实现,网络传输效率低下,系统资源消耗高,对硬件要求相对更高。传统的应用服务器中间件在集群支持和平行扩展方面存在不足,在集群配置方面极为繁琐,又或是依赖外部系统负载调度,需自行整合设计方案;在协议兼容方面,缺乏灵活性;在应用部署方面,不能根据需求热部署动态添加;在监控方面,如果要对业务层面进行监控,需要进行二次开发。在车联网领域能够满足这些需求的应用服务器中间件更是凤毛麟角。
为解决上述技术问题,本发明采用如下技术方案:
一种基于OSGI技术的可平行扩展的应用服务器,所述应用服务器包括:
网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块;
1)网络通信模块用以实现应用服务器与终端设备的连接;
使用NIO网络API实现的网络底层通信功能,能够更高效的处理大量的网络请求,基于通用的Tcp协议,能够更加灵活的处理来自各种终端的网络请求;使得本应用服务器拥有了能够更稳定高效的处理大规模的网络请求的能力;应用服务器基于事件驱动模型设计,并通过管道来控制事件分发和传递;
2)协议转换模块用以实现客户端与服务器之间的协议转换;具体包括:业务请求消息单元、平台统一消息接口、ProtoBuffer协议单元、TCP协议单元;
业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化;
3)集群管理模块用以将分布式协调组件Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;本应用服务器使用Zookeeper的特性,使得服务器在启动时能够自动的加入集群、停止时能够自动从集群脱离,能够无限扩展集群节点;使得本应用服务器拥有了基于集群的平行扩展能力;
实现方法:当每个服务器节点在启动时,会在zookeeper中创建两个存储节点ClusterA/members/N和/ClusterA/available/N,其中members/N将永久存在,表示集群中的节点,available/N将会根据网络中断或者集群节点服务停止shutdown指令时消失;它的消失将实时通过各个客户端的Watcher通知到集群客户端,同时当网络恢复时,节点将重新回到可用节点available列表中,这个机制能保证集群客户端的available列表中将总是可以的服务器集群节点;当网络断开时,所有集群客户端的监视器Watcher将收到某个节点脱离集群的事件,则这个节点将不在作用于集群;
4)模块化服务容器用以将所有来自网络通信模块的网络请求会先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器会从osgi容器中查找到对应的服务,来完成相关的业务处理;基于由于Osgi容器的特性,这些业务组件包bundle,在运行时环境中动态的加载和移除;使得服务容器拥有更大的灵活性,以及服务的热部署能力;
5)监控管理模块用以对业务模块进行监控;包括:
客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块的服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP访问接口给客户端;
客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;
业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;
指标采集开始需要获取业务模块SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口;
循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;
一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;
采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;
业务指标的分析及报警步骤;
信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本;
其中,业务指标的分析及报警步骤具体包括:
步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;
步骤S82、根据集群-服务器关系提取各集群的成员服务器;
步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;
步骤S84、对每项指标逐一检查配置的报警阀值;
步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;
步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;
步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;
步骤S88、获取报警的邮件发送列表,发送报警邮件。
一种基于OSGI技术的可平行扩展的应用服务器,所述应用服务器包括:网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块;
所述网络通信模块用以实现应用服务器与终端设备的连接;
所述协议转换模块用以实现客户端与服务器之间的协议转换;具体包括:业务请求消息单元、平台统一消息接口、ProtoBuffer协议单元、TCP协议单元;业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化;
所述集群管理模块用以将分布式协调组件Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;本应用服务器使用Zookeeper的特性,使得服务器在启动时能够自动的加入集群、停止时能够自动从集群脱离,能够无限扩展集群节点;使得本应用服务器拥有了基于集群的平行扩展能力;
所述模块化服务容器用以将所有来自网络通信模块的网络请求会先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器会从osgi容器中查找到对应的服务,来完成相关的业务处理;基于由于Osgi容器的特性,这些业务组件包bundle,在运行时环境中动态的加载和移除;使得服务容器拥有更大的灵活性,以及服务的热部署能力;
所述监控管理模块用以对业务模块进行监控。
作为本发明的一种优选方式,所述监控管理模块的监控管理步骤包括:
客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块的服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP访问接口给客户端;
客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;
业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;
指标采集开始需要获取业务模块SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口;
循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;
一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;
采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;
业务指标的分析及报警步骤。
作为本发明的一种优选方式,所述监控管理模块的监控管理步骤还包括信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本。
作为本发明的一种优选方式,业务指标的分析及报警步骤具体包括:
步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;
步骤S82、根据集群-服务器关系提取各集群的成员服务器;
步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;
步骤S84、对每项指标逐一检查配置的报警阀值;
步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;
步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;
步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;
步骤S88、获取报警的邮件发送列表,发送报警邮件。
作为本发明的一种优选方式,所述业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化。
作为本发明的一种优选方式,所述集群管理模块实现方法包括:当每个服务器节点在启动时,会在分布式协调组件zookeeper中创建两个存储节点ClusterA/members/N和/ClusterA/available/N,其中members/N将永久存在,表示集群中的节点,available/N将会根据网络中断或者集群节点服务停止shutdown指令时消失;它的消失将实时通过各个客户端的Watcher通知到集群客户端,同时当网络恢复时,节点将重新回到可用节点available列表中,这个机制能保证集群客户端的available列表中将总是可以的服务器集群节点;当网络断开时,所有集群客户端的监视器Watcher将收到某个节点脱离集群的事件,则这个节点将不在作用于集群。
本发明的有益效果在于:本发明提出的基于OSGI技术的可平行扩展的应用服务器,可集群、可平行扩展、支持车联网行业与车辆Tbox通讯的ACP协议、支持异构平台之间的高效二进制协议,并能够适应车联网汽车数据采集的高并发需求。
附图说明
图1为本发明应用服务器的组成示意图。
图2为本发明应用服务器的系统架构设计图。
图3为本发明应用服务器协议转换模块的消息协议栈示意图。
图4为本发明应用服务器协议转换模块的协议转换示意图。
图5为本发明应用服务器集群管理模块实现原理图。
图6为本发明应用服务器集群节点网络中断示意图。
图7为本发明应用服务器模块化服务容器实现原理图。
图8为本发明应用服务器业务方法监控指标计算和发布模型图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
请参阅图1、图2,本发明揭示了一种基于OSGI技术的可平行扩展的应用服务器,所述应用服务器包括:网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块。这些模块有机的结合起来,便实现了高性能、可平行扩展的应用服务器,组成系统整体架构,如图2所示。
网络通信模块用以实现应用服务器与终端设备的连接。使用NIO网络API实现的网络底层通信功能,能够更高效的处理大量的网络请求,基于通用的Tcp协议,能够更加灵活的处理来自各种终端的网络请求;使得本应用服务器拥有了能够更稳定高效的处理大规模的网络请求的能力;应用服务器基于事件驱动模型设计,并通过管道来控制ChannelEvent事件分发和传递。
协议转换模块用以实现客户端与服务器之间的协议转换。请参阅图3,协议转换模块具体依次包括:第一业务请求消息单元、第一平台统一消息接口、第一ProtoBuffer协议单元、TCP协议单元、第二ProtoBuffer协议单元、第二平台统一消息接口、第二业务请求消息单元。业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化。
业务请求消息单元是应用到系统具体业务的一个数据结构单元,是系统可识别的业务数据单元。由Thrift协议实现;
平台统一消息接口单元是平台定义的统一的业务无关的消息结构,包括消息头和消息体。消息头用来存放业务请求的一些标识信息,消息体用来存放具体的业务请求数据。由Thrift协议实现;
ProtoBuffer协议消息单元基于平台通信服务的底层消息结构,是平台服务器级别的通信消息结构,存放的内容就是上一层的平台统一消息。由ProtoBuffer协议实现;
消息转换过程:
在客户端,消息按照这样的方式逐层转换:业务请求消息单元→平台统一消息接口→ProtoBuffer协议单元→Tcp数据流。
在服务器端,按照这样的方式反向转换:Tcp数据流→ProtoBuffer协议单元→平台统一消息接口→业务请求消息单元。
如图2所示,在Tcp协议之上,使用ProtoBuffer和Thrift协议封装了基于车联网业务的消息。ProtoBuffer是Google开发的开源项目。Thrift是Apache旗下的开源项目。两者都是高效的数据对象序列化、反序列化的协议。他们广泛应用在众多知名的开源项目中,比如Hadoop、Hbase等。本应用服务器使用它们作为应用层的协议,相对于使用Http/Soap协议WebService以及Http/Xml/Json协议的WebServer,能够大大减小网络传输的开销,提高服务器的响应速度。使得应用服务器拥有更高的效率。
集群管理模块用以将Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;本应用服务器使用Zookeeper的特性,使得服务器在启动时能够自动的加入集群、停止时能够自动从集群脱离,能够无限扩展集群节点;使得本应用服务器拥有了基于集群的平行扩展能力。
请参阅图4,集群管理模块实现方法包括:当每个服务器节点在启动时,会在zookeeper中创建两个存储节点ClusterA/members/N和/ClusterA/available/N,其中members/N将永久存在,表示集群中的节点,available/N将会根据网络中断或者集群shutdown指令时消失;它的消失将实时通过各个客户端的Watcher通知到集群客户端,同时当网络恢复时,节点将重新回到available列表中,这个机制能保证集群客户端的available列表中将总是可以的服务器集群节点。
请参阅图5,当网络断开时,所有集群客户端的Watcher将收到某个节点脱离集群的事件,则这个节点将不在作用于集群。
请参阅图6,模块化服务容器通过整合OSGI框架Felix到服务器,使得应用服务器拥有了动态模块化组织、部署服务模块的能力。OSGI是业界模块化动态开发的标准规范、Felix是Apache旗下的一款实现了OSGI规范的OSGI容器。本应用服务器整合了Felix框架后,将所有的业务服务以模块化的方式构建成标准OSGI的bundle。这些bundle能够动态的加载、启动、卸载等。在使业务开发更方便、更清晰的同时,使得服务器拥有了服务的动态热部署的能力。
模块化服务容器用以将所有来自网络通信模块的网络请求会先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器会从osgi容器中查找到对应的服务,来完成相关的业务处理;基于由于Osgi容器的特性,这些业务bundle,在运行时环境中动态的加载和移除;使得服务容器拥有更大的灵活性,以及服务的热部署能力。
监控管理模块用以对业务模块进行监控。请参阅图7,监控管理模块的监控过程包括:
【步骤S1】客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块SP是否还在集群中,若在集群中,则返回业务模块服务容器SP访问接口给客户端。如图1所示,图1为业务组件模型的示意图。
【步骤S2】客户端调用业务组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;
【步骤S3】业务方法拦截器调用OSGI-容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;
【步骤S4】指标采集开始需要获取业务模块SP组件的业务方法列表;通过MBean监控模块从业务方法拦截器获取。如图2所示,图2揭示了数据采集的方式及过程。
MBEAN监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口;MBean监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口。
【步骤S5】循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;
【步骤S6】一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;
【步骤S7】采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;
【步骤S8】业务指标的分析及报警步骤。具体包括:
步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;
步骤S82、根据集群-服务器关系提取各集群的成员服务器;
步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;
步骤S84、对每项指标逐一检查配置的报警阀值;
步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;
步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;
步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;
步骤S88、获取报警的邮件发送列表,发送报警邮件。
【步骤S9】信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本。
综上所述,本发明提出的基于OSGI技术的可平行扩展的应用服务器,可集群、可平行扩展、支持车联网行业与车辆Tbox通讯的ACP协议、支持异构平台之间的高效二进制协议,并能够适应车联网汽车数据采集的高并发需求。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

Claims (7)

1.一种基于OSGI技术的可平行扩展的应用服务器,其特征在于,所述应用服务器包括:
网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块;
1)网络通信模块用以实现应用服务器与终端设备的连接;
使用NIO网络API实现的网络底层通信功能,能够更高效的处理大量的网络请求,基于通用的Tcp协议,能够更加灵活的处理来自各种终端的网络请求;使得本应用服务器拥有了能够更稳定高效的处理大规模的网络请求的能力;应用服务器基于事件驱动模型设计,并通过管道来控制事件分发和传递;
2)协议转换模块用以实现客户端与服务器之间的协议转换;具体包括:业务请求消息单元、平台统一消息接口、ProtoBuffer协议单元、TCP协议单元;
业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化;
3)集群管理模块用以将分布式协调组件Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;本应用服务器使用Zookeeper的特性,使得服务器在启动时能够自动的加入集群、停止时能够自动从集群脱离,能够无限扩展集群节点;使得本应用服务器拥有了基于集群的平行扩展能力;
实现方法:当每个服务器节点在启动时,会在zookeeper中创建两个存储节点ClusterA/members/N和/ClusterA/available/N,其中members/N将永久存在,表示集群中的节点,available/N将会根据网络中断或者集群节点服务停止shutdown指令时消失;它的消失将实时通过各个客户端的Watcher通知到集群客户端,同时当网络恢复时,节点将重新回到可用节点available列表中,这个机制能保证集群客户端的available列表中将总是可以的服务器集群节点;当网络断开时,所有集群客户端的监视器Watcher将收到某个节点脱离集群的事件,则这个节点将不在作用于集群;
4)模块化服务容器用以将所有来自网络通信模块的网络请求会先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器会从osgi容器中查找到对应的服务,来完成相关的业务处理;基于由于Osgi容器的特性,这些业务组件包bundle,在运行时环境中动态的加载和移除;使得服务容器拥有更大的灵活性,以及服务的热部署能力;
5)监控管理模块用以对业务模块进行监控;包括:
客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块的服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP访问接口给客户端;
客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;
业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;
指标采集开始需要获取业务模块SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口;
循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;
一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;
采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;
业务指标的分析及报警步骤;
信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本;
其中,业务指标的分析及报警步骤具体包括:
步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;
步骤S82、根据集群-服务器关系提取各集群的成员服务器;
步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;
步骤S84、对每项指标逐一检查配置的报警阀值;
步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;
步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;
步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;
步骤S88、获取报警的邮件发送列表,发送报警邮件。
2.一种基于OSGI技术的可平行扩展的应用服务器,其特征在于,所述应用服务器包括:网络通信模块、协议转换模块、集群管理模块、模块化服务容器、监控管理模块;
所述网络通信模块用以实现应用服务器与终端设备的连接;
所述协议转换模块用以实现客户端与服务器之间的协议转换;具体包括:业务请求消息单元、平台统一消息接口、ProtoBuffer协议单元、TCP协议单元;业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化;
所述集群管理模块用以将分布式协调组件Zookeeper组件整合到应用服务器中,使得应用服务器拥有的动态集群的能力;本应用服务器使用Zookeeper的特性,使得服务器在启动时能够自动的加入集群、停止时能够自动从集群脱离,能够无限扩展集群节点;使得本应用服务器拥有了基于集群的平行扩展能力;
所述模块化服务容器用以将所有来自网络通信模块的网络请求会先进入线程池,待线程池中的任务执行时,请求会被分发到不同的业务服务处理器,业务服务处理器会从osgi容器中查找到对应的服务,来完成相关的业务处理;基于由于Osgi容器的特性,这些业务组件包bundle,在运行时环境中动态的加载和移除;使得服务容器拥有更大的灵活性,以及服务的热部署能力;
所述监控管理模块用以对业务模块进行监控。
3.根据权利要求2所述的基于OSGI技术的可平行扩展的应用服务器,其特征在于:
所述监控管理模块的监控管理步骤包括:
客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块的服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP访问接口给客户端;
客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;
业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;
指标采集开始需要获取业务模块SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口;
循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;
一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;
采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;
业务指标的分析及报警步骤。
4.根据权利要求3所述的基于OSGI技术的可平行扩展的应用服务器,其特征在于:
所述监控管理模块的监控管理步骤还包括信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本。
5.根据权利要求3所述的基于OSGI技术的可平行扩展的应用服务器,其特征在于:
业务指标的分析及报警步骤具体包括:
步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;
步骤S82、根据集群-服务器关系提取各集群的成员服务器;
步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;
步骤S84、对每项指标逐一检查配置的报警阀值;
步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;
步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;
步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;
步骤S88、获取报警的邮件发送列表,发送报警邮件。
6.根据权利要求2所述的基于OSGI技术的可平行扩展的应用服务器,其特征在于:
所述业务请求消息单元用以发送业务请求消息;平台统一消息接口单元用以将消息转化为统一的格式;ProtoBuffer协议消息单元用以将消息按照ProtoBuffer协议的要求进行转化;TCP协议单元用以将消息按照TCP协议进行转化。
7.根据权利要求2所述的基于OSGI技术的可平行扩展的应用服务器,其特征在于:
所述集群管理模块实现方法包括:当每个服务器节点在启动时,会在分布式协调组件zookeeper中创建两个存储节点ClusterA/members/N和/ClusterA/available/N,其中members/N将永久存在,表示集群中的节点,available/N将会根据网络中断或者集群节点服务停止shutdown指令时消失;它的消失将实时通过各个客户端的Watcher通知到集群客户端,同时当网络恢复时,节点将重新回到可用节点available列表中,这个机制能保证集群客户端的available列表中将总是可以的服务器集群节点;当网络断开时,所有集群客户端的监视器Watcher将收到某个节点脱离集群的事件,则这个节点将不在作用于集群。
CN201410472651.0A 2014-09-16 2014-09-16 基于osgi技术的可平行扩展的应用服务器 Active CN105430030B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410472651.0A CN105430030B (zh) 2014-09-16 2014-09-16 基于osgi技术的可平行扩展的应用服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410472651.0A CN105430030B (zh) 2014-09-16 2014-09-16 基于osgi技术的可平行扩展的应用服务器

Publications (2)

Publication Number Publication Date
CN105430030A true CN105430030A (zh) 2016-03-23
CN105430030B CN105430030B (zh) 2018-12-07

Family

ID=55507971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410472651.0A Active CN105430030B (zh) 2014-09-16 2014-09-16 基于osgi技术的可平行扩展的应用服务器

Country Status (1)

Country Link
CN (1) CN105430030B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547888A (zh) * 2016-11-04 2017-03-29 北京集奥聚合科技有限公司 一种时间序列数据库的构造方法及系统
CN106559490A (zh) * 2016-11-24 2017-04-05 郑州云海信息技术有限公司 一种用于存储集群设备的管理方法
CN106792825A (zh) * 2016-12-29 2017-05-31 河北远东通信系统工程有限公司 一种分布式网络设备的管理方法
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法
WO2018032399A1 (en) * 2016-08-17 2018-02-22 Zte Corporation Server and method having high concurrency capability
CN110071975A (zh) * 2019-04-23 2019-07-30 深圳易帆互动科技有限公司 异步上报的动态服务器管理系统
CN110673549A (zh) * 2019-09-05 2020-01-10 国家计算机网络与信息安全管理中心 基于分布式架构的数据中心智能监控系统和方法
CN110752939A (zh) * 2018-07-24 2020-02-04 成都华为技术有限公司 一种业务进程故障处理方法、通知方法和装置
CN112230987A (zh) * 2020-10-29 2021-01-15 电信科学技术第五研究所有限公司 一种分布式模块化插件框架实现系统及方法
CN115269209A (zh) * 2022-09-30 2022-11-01 浙江宇视科技有限公司 一种gpu集群调度方法及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050184A1 (en) * 2003-08-29 2005-03-03 International Business Machines Corporation Method, system, and storage medium for providing life-cycle management of grid services
CN101977196A (zh) * 2010-10-29 2011-02-16 西安交通大学 一种无侵入性的搭建微内核虚拟化平台的方法
CN103309674A (zh) * 2013-06-25 2013-09-18 深圳中兴网信科技有限公司 一种软件架构系统
CN103401704A (zh) * 2013-07-24 2013-11-20 佳都新太科技股份有限公司 一种分布式日志采集服务器的实现方案

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050184A1 (en) * 2003-08-29 2005-03-03 International Business Machines Corporation Method, system, and storage medium for providing life-cycle management of grid services
CN101977196A (zh) * 2010-10-29 2011-02-16 西安交通大学 一种无侵入性的搭建微内核虚拟化平台的方法
CN103309674A (zh) * 2013-06-25 2013-09-18 深圳中兴网信科技有限公司 一种软件架构系统
CN103401704A (zh) * 2013-07-24 2013-11-20 佳都新太科技股份有限公司 一种分布式日志采集服务器的实现方案

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018032399A1 (en) * 2016-08-17 2018-02-22 Zte Corporation Server and method having high concurrency capability
CN106547888A (zh) * 2016-11-04 2017-03-29 北京集奥聚合科技有限公司 一种时间序列数据库的构造方法及系统
CN106559490B (zh) * 2016-11-24 2019-10-18 郑州云海信息技术有限公司 一种用于存储集群设备的管理方法
CN106559490A (zh) * 2016-11-24 2017-04-05 郑州云海信息技术有限公司 一种用于存储集群设备的管理方法
CN106792825A (zh) * 2016-12-29 2017-05-31 河北远东通信系统工程有限公司 一种分布式网络设备的管理方法
CN106792825B (zh) * 2016-12-29 2019-11-22 河北远东通信系统工程有限公司 一种分布式网络设备的管理方法
CN107562522A (zh) * 2017-10-12 2018-01-09 国电南瑞科技股份有限公司 一种基于ZooKeeper的分布式应用管理方法
CN110752939A (zh) * 2018-07-24 2020-02-04 成都华为技术有限公司 一种业务进程故障处理方法、通知方法和装置
CN110752939B (zh) * 2018-07-24 2022-09-16 成都华为技术有限公司 一种业务进程故障处理方法、通知方法和装置
CN110071975A (zh) * 2019-04-23 2019-07-30 深圳易帆互动科技有限公司 异步上报的动态服务器管理系统
CN110673549A (zh) * 2019-09-05 2020-01-10 国家计算机网络与信息安全管理中心 基于分布式架构的数据中心智能监控系统和方法
CN112230987A (zh) * 2020-10-29 2021-01-15 电信科学技术第五研究所有限公司 一种分布式模块化插件框架实现系统及方法
CN112230987B (zh) * 2020-10-29 2023-12-01 电信科学技术第五研究所有限公司 一种分布式模块化插件框架实现系统及方法
CN115269209A (zh) * 2022-09-30 2022-11-01 浙江宇视科技有限公司 一种gpu集群调度方法及服务器
CN115269209B (zh) * 2022-09-30 2023-01-10 浙江宇视科技有限公司 一种gpu集群调度方法及服务器

Also Published As

Publication number Publication date
CN105430030B (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN105430030A (zh) 基于osgi技术的可平行扩展的应用服务器
CN106033476B (zh) 一种云计算环境中分布式计算模式下的增量式图计算方法
CN105447088A (zh) 一种基于志愿者计算的多租户专业云爬虫
CN105490864A (zh) 基于osgi的业务模块监控方法
CN103067486B (zh) 基于PaaS平台的大数据处理方法
CN105303292A (zh) 配电数据存储方法和装置
CN112380399A (zh) 基于云平台的用电大数据处理系统及其处理方法
CN113297126A (zh) 一种实现电力数据处理的同异构混合多核芯片架构
CN107506286A (zh) Cpu和内存块的自动上下线方法和系统
CN116302581B (zh) 一种新型智能配电终端及系统
CN104991849A (zh) 一种通过zabbix监控Linux进程占用系统资源的方法
CN215298210U (zh) 电力物联网的多级边缘计算系统
CN104166581A (zh) 一种面向增量制造设备的虚拟化方法
CN105005524A (zh) 一种监测软件云服务系统设计方法
Liu et al. Research on cloud-edge interaction technology of power internet of things based on MQTT protocol
CN109672728A (zh) 一种大规模分布式集群节点信息快速获取方法
CN109302723A (zh) 一种基于互联网的多节点实时无线电监测控制系统及控制方法
CN111817912B (zh) 基于轻量级脚本的接入层热点流量监控方法及装置
CN103617084A (zh) 一种基于微内核群集的应急指挥云服务的实现方法及其系统
CN103679565A (zh) 智能小区用电信息采集服务器系统和数据处理方法
Ku et al. Energy information collecting agent for IoT big data system
CN106339207B (zh) 一种用电信息采集端模型设计方法
CN114301980A (zh) 容器集群的调度方法、装置、系统及计算机可读介质
CN103269327A (zh) 一种基于代理机制的通用文件数据服务的实现方法
CN103023740A (zh) 一种信息交互总线系统及电力数据传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Parallel scalable application server based on OSGI technology

Effective date of registration: 20221021

Granted publication date: 20181207

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000291

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230926

Granted publication date: 20181207

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000291

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Parallel Scalable Application Server Based on OSGI Technology

Effective date of registration: 20231016

Granted publication date: 20181207

Pledgee: Industrial Bank Co.,Ltd. Shanghai West sub branch

Pledgor: TAIMA INFORMATION NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2023310000647