智慧消防物联网平台层根据功能可以分为5个子系统,分别为:数据接入子系统、数据存储子系统、数据处理子系统、平台服务子系统、监控报警子系统,其技术特点为:
1.3.1 数据接入子系统
负载均衡
负载均衡是一种扩展服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术。它将大量并发访问分担到多台设备上进行分别处理,降低处理时延和单台服务器负载。
网关
数据网关主要负责接收终端上报的数据、指令下发和数据路由。
消息中间件
消息队列是设计大规模分布式系统时经常使用的中间件产品。分布式系统构件之间通过传递消息可以解除相互之间的功能耦合,这样可以减轻子系统之间的依赖,使得各个子系统或者构件可以独立演进、维护或重用。
1.3.2 数据存储子系统
HDFS
HDFS是Hadoop最核心的设计之一。它是高度容错的分布式文件系统,设计用在低成本的硬件上运行。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HBASE
HBase 是一个面向列的分布式数据库,其设计目标是用来解决关系型数据库在处理海量数据时的理论和实现上的局限性,支持Terabyte到Petabyte级别的海量数据存储和高速读写,这些数据被分布在数千台普通服务器上,并且能够被大量并发用户高速访问。
RDBMS
HBase虽然支持大数据量的存储,但是不支持复杂的查询。TStar中业务数据在进行展示时需要支持复杂查询,这部分数据主要存储在关系型数据库。90%以上的存储已经被Hadoop和HBase承担,RDBMS在TStar中负荷较低,性能比较高。
Redis
Redis是一款开源的、高性能支持持久化的键-值存储系统,其性能极高,能支持超过10万每秒的读写频率。
TStar主要使用Redis来存储读写频率较高,数据量较恒定的数据。例如,终端当前状态。
1.3.3数据处理子系统
数据处理子系统,主要包括实时处理和批量处理。实时处理主要针对终端定时上报数据进行解析、报警判断等时效性要求高的任务。批量处理主要针对报表分析、BI等对时效性要求不高的任务。
实时处理
在TStar中,对大数据处理的计算时效性要求很高,要求计算能在非常短的时延内完成。因此采用了Storm框架,它能提供很好的可扩展性和容错性,并且对消息的处理可以达到毫秒级的延迟。
离线计算
TStar离线分析模块使用MapReduce计算框架,是Hadoop最核心的设计之一,适合离线处理超大规模数据集,如日报表分析、月报表分析、年度报表分析等。
1.3.4平台服务子系统
数据导入
网关接收到的终端原始数据和实时计算产生的部分数据分别存放在HDFS和Hbase里面,使用Kafka进行解耦,网关把原始数据写入Kafka中,实时计算把解析数据写入Kafka中 ,HDFS数据导入模块和Hbase数据导入模块异步的将Kafka中的数据导入到相应的存储中。
数据交换接口
TStar提供三种数据交换接口:跨语言的Thrift RPC接口、JAVA API接口和REST API接口。
跨语言的Thrift RPC接口
TStar提供跨语言(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml)的数据交换接口,旨在提供业务层和平台层的数据交互服务,包括实时数据获取,历史数据获取,终端指令下发及应答检查。
JAVA API
TStar提供与TStar各模块直接交互的JAVA API,为业务层提供了高性能的数据交互服务,包括实时数据获取,历史数据获取,终端指令下发及应答检查。
REST API
TStar为第三方平台提供了统一的REST API接口,您可以使用几乎任何客户端在任何编程语言与REST API进行交互,以及编写和测试应用程序。接口支持设备的管理,实时数据、历史数据的获取,终端的指令下发。
1.3.5监控报警子系统
系统监控
TStar使用Ganglia来监控每个节点的工作状态,通过长期监测系统运行状况可以对合理调整、分配系统资源提供参考。系统运行初期可以依据系统监控数据对平台进行优化。
系统告警
TStar平台使用Nagios提供三个层面的监控和告警:
系统层面:使用插件来监控服务器的CPU、内存、硬盘使用率、I/O负载
软件层面:TStar的所有进程在启动后把自己的PID写入指定目录的文件内,文件名为进程名。Nagios根据PID定时检查进程的状态,对挂掉的进程显示报警。
业务层面:TStar中的各个模块可以自定义告警,例如当网关中的链接数超过阈值,数据导入模块在一定时间内没有接收到数据都可以产生告警
TStar平台提供多种告警通知方式,包含邮件或短信或APP等。智慧消防物联网平台层根据功能可以分为5个子系统,分别为:数据接入子系统、数据存储子系统、数据处理子系统、平台服务子系统、监控报警子系统,其技术特点为:
1.3.1 数据接入子系统
负载均衡
负载均衡是一种扩展服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术。它将大量并发访问分担到多台设备上进行分别处理,降低处理时延和单台服务器负载。
网关
数据网关主要负责接收终端上报的数据、指令下发和数据路由。
消息中间件
消息队列是设计大规模分布式系统时经常使用的中间件产品。分布式系统构件之间通过传递消息可以解除相互之间的功能耦合,这样可以减轻子系统之间的依赖,使得各个子系统或者构件可以独立演进、维护或重用。
1.3.2 数据存储子系统
HDFS
HDFS是Hadoop最核心的设计之一。它是高度容错的分布式文件系统,设计用在低成本的硬件上运行。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HBASE
HBase 是一个面向列的分布式数据库,其设计目标是用来解决关系型数据库在处理海量数据时的理论和实现上的局限性,支持Terabyte到Petabyte级别的海量数据存储和高速读写,这些数据被分布在数千台普通服务器上,并且能够被大量并发用户高速访问。
RDBMS
HBase虽然支持大数据量的存储,但是不支持复杂的查询。TStar中业务数据在进行展示时需要支持复杂查询,这部分数据主要存储在关系型数据库。90%以上的存储已经被Hadoop和HBase承担,RDBMS在TStar中负荷较低,性能比较高。
Redis
Redis是一款开源的、高性能支持持久化的键-值存储系统,其性能极高,能支持超过10万每秒的读写频率。
TStar主要使用Redis来存储读写频率较高,数据量较恒定的数据。例如,终端当前状态。
1.3.3数据处理子系统
数据处理子系统,主要包括实时处理和批量处理。实时处理主要针对终端定时上报数据进行解析、报警判断等时效性要求高的任务。批量处理主要针对报表分析、BI等对时效性要求不高的任务。
实时处理
在TStar中,对大数据处理的计算时效性要求很高,要求计算能在非常短的时延内完成。因此采用了Storm框架,它能提供很好的可扩展性和容错性,并且对消息的处理可以达到毫秒级的延迟。
离线计算
TStar离线分析模块使用MapReduce计算框架,是Hadoop最核心的设计之一,适合离线处理超大规模数据集,如日报表分析、月报表分析、年度报表分析等。
1.3.4平台服务子系统
数据导入
网关接收到的终端原始数据和实时计算产生的部分数据分别存放在HDFS和Hbase里面,使用Kafka进行解耦,网关把原始数据写入Kafka中,实时计算把解析数据写入Kafka中 ,HDFS数据导入模块和Hbase数据导入模块异步的将Kafka中的数据导入到相应的存储中。
数据交换接口
TStar提供三种数据交换接口:跨语言的Thrift RPC接口、JAVA API接口和REST API接口。
跨语言的Thrift RPC接口
TStar提供跨语言(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml)的数据交换接口,旨在提供业务层和平台层的数据交互服务,包括实时数据获取,历史数据获取,终端指令下发及应答检查。
JAVA API
TStar提供与TStar各模块直接交互的JAVA API,为业务层提供了高性能的数据交互服务,包括实时数据获取,历史数据获取,终端指令下发及应答检查。
REST API
TStar为第三方平台提供了统一的REST API接口,您可以使用几乎任何客户端在任何编程语言与REST API进行交互,以及编写和测试应用程序。接口支持设备的管理,实时数据、历史数据的获取,终端的指令下发。
1.3.5监控报警子系统
系统监控
TStar使用Ganglia来监控每个节点的工作状态,通过长期监测系统运行状况可以对合理调整、分配系统资源提供参考。系统运行初期可以依据系统监控数据对平台进行优化。
系统告警
TStar平台使用Nagios提供三个层面的监控和告警:
系统层面:使用插件来监控服务器的CPU、内存、硬盘使用率、I/O负载
软件层面:TStar的所有进程在启动后把自己的PID写入指定目录的文件内,文件名为进程名。Nagios根据PID定时检查进程的状态,对挂掉的进程显示报警。
业务层面:TStar中的各个模块可以自定义告警,例如当网关中的链接数超过阈值,数据导入模块在一定时间内没有接收到数据都可以产生告警
TStar平台提供多种告警通知方式,包含邮件或短信或APP等。