The invention discloses a solution of high availability, high concurrency and high performance distributed remote meter reading acquisition server, in which multiple acquisition servers use Orleans to form a cluster; at the same time, there is only one task distributor in the process of running the acquisition server: Master server Master server generates meter reading records regularly to t_running table, and regularly to t_running table according to priority level. The sequential tasks that need to be executed when the time is up are acquired into memory, only part of the tasks are acquired at a time; the tasks acquired from the database exist in a memory queue; the invention also discloses some other technical features. The invention increases the stability and high availability of the whole acquisition system, does not affect the operation of the whole system when one or several machines in the cluster go down; the balanced distributed processing mode enables each machine in the cluster to handle relatively uniform tasks, makes the overall resources more reasonable utilization, and avoids some server tasks overloading and some servers processing without tasks.
【技术实现步骤摘要】
高可用高并发高性能分布式远程抄表采集服务器解决方法
本专利技术涉及计算机软件系统中与智能电表、集中器或者网关的数据采集、数据交互的服务器端系统架构、系统设计的解决方案。尤其涉及大批量、实时性要求较高的智能电表的数据采集和数据交互系统,特别涉及一种高可用高并发高性能分布式远程抄表采集服务器解决方法。
技术介绍
随着电子技术的发展出现越来越多的用到小型智能终端设备如各类传感器、智能手机、智能电表、网络摄像机等等,这是一个物联网的时代;光有智能设备不足以满足人类的要求,智能设备被安装后人们要求对每个角落的每块设备进行远程访问控制,尤其是需要实时的采集到这些智能设备的各种数据并对这些数据进行加工处理。本专利技术不涉及对大数据的加工处理和分析,本专利技术只针对如何远程实时高效的与智能电表交互数据。其中终端智能电表可通过GPRS、以太网接入到主站服务器,也可以通过plc或者RF连接到集中器或者网关,再由集中器或者网关连接到主站。比如现在需要采集一个超大城市的所有智能电表数据(如实时采集每15分钟的电能负荷曲线),有如下一系列需求或前提条件:·这个城市可能安装了超过500万只智能电表·要求30分钟内采集完所有500万只电表数据·有的电表是通过网关或者集中器连接到主站服务器,一个网关下可能连接几百块plc电表,并且同一时间网关只能与下面一个电表进行通讯·并且期间可能有相当部分电表还存在其它任务要处理如远程拉合闸充费等等。·同一个集中器下的所有电表任务只能同时在一个地方被处理,一次只能处理一块电表的众多任务之一否则会冲突导致任务处理失败·同一个GPRS电表的所有任务也只能同 ...
【技术保护点】
1.高可用高并发高性能分布式远程抄表采集服务器解决方法,其特征在于:多个采集服务器使用orleans组成一个集群;同一时刻所有在运行的采集服务器进程中只有一个任务分发者:Master服务器Master服务器定期生成抄表记录到t_running表,定期到t_running表根据优先级高低顺和已经到时间需要执行的任务序获取到内存中,每次只获取部分任务;从数据库获取到的任务存在内存一个队列中;另外单独有一个线程每隔若干毫秒检测这个队列,如果发现队列有数据则对队列中的任务再次根据时间优先级排序和设备id进行分组,对当前空闲的设备挑选出其设备下的任务,并通过orleans客户端发送任务到集群中;发送任务时以设备id作为grain的identity,以任务的具体信息作为请求内容发送,orleans集群自动实例化和管理每个grain的生命周期。
【技术特征摘要】
1.高可用高并发高性能分布式远程抄表采集服务器解决方法,其特征在于:多个采集服务器使用orleans组成一个集群;同一时刻所有在运行的采集服务器进程中只有一个任务分发者:Master服务器Master服务器定期生成抄表记录到t_running表,定期到t_running表根据优先级高低顺和已经到时间需要执行的任务序获取到内存中,每次只获取部分任务;从数据库获取到的任务存在内存一个队列中;另外单独有一个线程每隔若干毫秒检测这个队列,如果发现队列有数据则对队列中的任务再次根据时间优先级排序和设备id进行分组,对当前空闲的设备挑选出其设备下的任务,并通过orleans客户端发送任务到集群中;发送任务时以设备id作为grain的identity,以任务的具体信息作为请求内容发送,orleans集群自动实例化和管理每个grain的生命周期。2.根据权利要求1所述的高可用高并发高性能分布式远程抄表采集服务器解决方法,其特征在于,Master服务器由以下方式产生:a.首先设计数据表t_Master和t_running,分别用于记录当前Master服务器的信息和任务信息,其中t_Master表字段Mastermark需要设定唯一约束;b.每个采集服务器进程启动后开启一个后台线程,该线程每隔0-180秒内的随机时间检测数据库表t_Master里面的记录,如果该表没记录则把自己作为Master服务器添加进去,如果添加成功则该进程成为Master服务器并开始履行Master服务器的职责;每个采集器服务器需要更新t_Master表记录时使用相同的Mastermark值,这样通过数据库的唯一约束防止多个采集服务器同时更新该表,起到加锁的功能,保证只有一个采集服务器能更新成功,更新成功的采集器成为Master角色;c.一旦一个采集服务器成为Master服务器后除非进程崩溃、掉电、机器重启、强行关闭、连接不上数据库,否则该角色会一直扮演下去;d.Master服务器定期更新t_Master的在线时间;e.其它非Master采集服务器定期检测t_Master运行情况,如果发现Master记录的在线时间超过120秒则认为系统当前没有健康的Master服务器存在,然后把t_Master中旧的记录删除,如果删除成功则把自己作为Master添加进去,如果添加成功则开始履行Master服务器的职责;新的Master服务器会重新到t_running表加载任务,由于切换Master服务器的时间间隔比访问一次前端设备的时间要长,所以新的Master服务器接管任务分派职责后在t_running表中的任务全都是未做或者做失败的任务。3.根...
【专利技术属性】
技术研发人员:刘杰,梅林,
申请(专利权)人:成都长城开发科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。