数据收集程序一般建筑(C++ ACE达到)
数据收集程序一般功能
经socket数据的接收的另一侧。端方能够访问智能电表采集器,你可曾与计算机之间的通信的通信协议(你良好的一致性是谁client,谁是服务端,即数据流)
为收集程序要求
可扩展:协议到来的时候,你能够不修改其它代码,仅仅创建相应的解码器和通信类就可以。
可配置:能够通过文件或者数据库来载入对方和自己的配置信息。
模块化程度高:採集程序依照模块功能划分为例如以下的几个主要模块(配置载入模块、两级消息队列、消费线程、解码器管理器、两级解码器、通信模块)
採集程序的一般架构
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FsbXJlYXNvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
此结构历经JSPTPD多个项目成型,在软件院朱磊总的设计下由多人(zhulei,.zhuyongjin,chenfan,,yuanweiwei,chenlinkong,zhuzhongzhi,lvzhiqianq)实现,各个模块均由DLL封装,出现故障easy定位。满足採集程序的一般要求。
关键接口和系统架构
以下是关键路径上的主要接口明细
上面的接口展示了具体设计中各个模块之间的关系和纽带。能够看出因为功能模块划分的清晰,能够方便的扩展和測试。
眼下难度较大和待完好的部分主要有:
(1)ConfigLoader。由于当成千上万的採集器和电表在线的时候,结构化的配置库将是系统不可或缺的信息支撑。当前的ConfigLoader类接口还比較简单,另外ConfigLoader尽管扩展easy,但在扩展的同一时候仍要提供一个清晰易用的接口还是须要细致斟酌的。或许须要多个项目打磨才会比較完好。
(2)使用Acceptor-Connector加Proactor模式实现自己主动异步处理大并发,这个正在进行,期待期待。
平台能力
依照半个小时採集一次的频率算。上面的结构仅仅要部署一到两个拷贝,应足以应付收购一个二线城市城市的智能电表数据。
版权声明:本文博主原创文章。博客,未经同意,不得转载。
数据收集程序一般建筑(C++ ACE达到)的更多相关文章
- 网站统计中的数据收集原理及实现(share)
转载自:http://blog.codinglabs.org/articles/how-web-analytics-data-collection-system-work.html 网站数据统计分析工 ...
- 使用nginx lua实现网站统计中的数据收集
导读网站数据统计分析工具是各网站站长和运营人员经常使用的一种工具,常用的有 谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于ja ...
- Flunetd 用于统一日志记录层的开源数据收集器
传统的日志查看方式 使用fluentd之后 一.介绍 Fluentd是一个开源的数据收集器,可以统一对数据收集和消费,以便更好地使用和理解数据. 几大特色: 使用JSON统一记录 简单灵活可插拔架构 ...
- 从0到1搭建基于Kafka、Flume和Hive的海量数据分析系统(一)数据收集应用
大数据时代,一大技术特征是对海量数据采集.存储和分析的多组件解决方案.而其中对来自于传感器.APP的SDK和各类互联网应用的原生日志数据的采集存储则是基本中的基本.本系列文章将从0到1,概述一下搭建基 ...
- 创建数据收集器集(DSC)
TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...
- 大数据技术之_25_手机APP信息统计系统项目_01_APP 数据生成模块 + 数据收集模块 + 数据处理模块框架搭建 + 业务需求处理 + 数据展示模块 +项目总结 + 问题总结
一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP ...
- 基于Python3.7和opencv的人脸识别(含数据收集,模型训练)
前言 第一次写博客,有点紧张和兴奋.废话不多说,直接进入正题.如果你渴望使你的电脑能够进行人脸识别:如果你不想了解什么c++.底层算法:如果你也不想买什么树莓派,安装什么几个G的opencv:如果你和 ...
- SQL Server自动化运维系列——关于数据收集(多服务器数据收集和性能监控)
需求描述 在生产环境中,很多情况下需要采集数据,用以定位问题或者形成基线. 关于SQL Server中的数据采集有着很多种的解决思路,可以采用Trace.Profile.SQLdiag.扩展事件等诸多 ...
- Oracle第三方ado.net数据提供程序
原文地址:http://www.infoq.com/cn/news/2009/06/oracleclient_deprecated 这项决定有部分原因是基于目前Oracle的第三方ADO.NET数据提 ...
随机推荐
- PAT-B 1015. 德才论(同PAT 1062. Talent and Virtue)
1. 在排序的过程中,注意边界的处理(小于.小于等于) 2. 对于B-level,这题是比較麻烦一些了. 源代码: #include <cstdio> #include <vecto ...
- Redis缓存实现单点登录SSO
.NET基于Redis缓存实现单点登录SSO的解决方案 .NET基于Redis缓存实现单点登录SSO的解决方案 一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单 ...
- 解决IE11无法下载文件的问题
[问题描写叙述] 单击IE底部下载工具栏没反应,点击"另存为"也没反应 [解决方法] 打开IE11,依次打开菜单:Internet 选项 -> 高级 -> 重置,重置完 ...
- C++ Preprosessor import
#import Attributes Provides links to attributes used with the #import directive. Microsoft Specific ...
- Bitmap
Bitmap篇 在前一篇中介绍了使用API做Distinct Count,但是计算精确结果的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样 ...
- 直接拿来用!最火的Android开源项目(三部完整版)
GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你 ...
- 【spring源代码分析】--Bean的解析与注冊
接着上一节继续分析,DefaultBeanDefinitionDocumentReader的parseBeanDefinitions方法: protected void parseBeanDefini ...
- App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)
http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3 ...
- Linux内核IP层的报文处理流程(一)
本文主要讲解了Linux内核IP层的整体架构和对从网卡接受的报文处理流程,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式对Linxu内核中IP整体实现架构和对网卡 ...
- POJ 1659 Frogs' Neighborhood
转载请注明出处:http://blog.csdn.net/a1dark 分析:切图论切的第一道题.也是图论的例题.主要用到一个Havel-Hakimi 定理 有以下两种不合理的情形: (1) 某次对剩 ...