APP下载

Linux下基于Nginx的配网数据采集高并发处理设计与实现

2020-01-16李萌汪贤浩

电子技术与软件工程 2019年22期
关键词:轮询后台前置

文/李萌 汪贤浩

1 引言

随着配网业务规模的不断提升,当前包括FTU、DTU、故障指示器等在内的配电终端数量相比传统配电业务已有大幅度提升。终端海量数据高并发接入配网主站的技术问题已成为配网行业发展的一大瓶颈,为应对大量终端接入时负载过大的难题,本方案综合配网业务和计算机行业前沿技术考虑,按照配网要求选用Nginx 服务实现反向代理负载均衡功能,作为大量配电终端的接入方式。由于Nginx 服务在互联网早已得到广泛应用,其B/S 架构反向代理负载均衡功能已是互联网行业的一大标杆,而其C/S 架构反向代理负载均衡功能却甚少使用,若能在配电行业大量运用,也必将是该行业的一大亮点。

2 Nginx概述

Nginx 是一款由俄罗斯设计师开发,官方验证可支撑5 万并发链接,且运行稳定、资源消耗非常低的多功能服务器。

Nginx 主要可部署实现三大服务:Web 服务器、反向代理负载均衡服务器、邮件代理服务器。其中,反向代理负载均衡服务已在互联网行业得到广泛应用。Nginx 实现负载均衡共提供6 种机制,分别是源地址哈希法、轮询法、随机法、加权轮询法、加权随机法和最小连接数法。每种机制均对应一种算法,可适配不同应用场景需求。

Nginx 服务的反向代理负载均衡功能具体说明如下:

(1)Nginx 反向代理(Reverse Proxy)即以Nginx 服务器来接受终端的连接请求,然后将请求转发给后台服务器,并将从后台服务器上得到的结果返回给终端。

(2)负载均衡(Load Balance)意为将任务处理分摊到多个操作单元上进行执行,Nginx 即为一个中间调度者,保证所有后台服务器性能均能得到充分发挥,从而保证系统稳定高效运行。

3 方案设计和实现

本方案的服务器操作系统采用Ubuntu16.04,在该服务器搭建Nginx 服务并进行反向代理负载均衡配置。

3.1 方案设计

3.1.1 策略评估分析

3.1.1.1 评估指标

(1)配电终端规模。对于现场配网终端进行数量评估,按照各区县各地市再上升到省级配网架构,统计FTU、DTU、故障指示器等终端接入规模的量级,并按照各类型设备的遥测遥信等点表数量,估算出服务器所需数据承载能力。

图1

(2)后台服务器性能。由于配网主站的长期迭代和服务器的可复用性,通常前置接入机器并非同一批次,可能新旧机器同时运行使用,故而要根据后台机器的不同性能选用Nginx 的不同策略。

(3)后台软件处理性能。在明确配电终端数量和后台服务器性能的硬件指标基础上,还需考虑后台服务的软件性能,否则在大量socket 链接建立的情况下,容易造成海量数据冲击,后台程序崩溃的情况。

3.1.1.2 结论分析

一般地,配电终端数量和后台软件性能标准是唯一的,具有确定性。假如配电终端数量为m,后台软件可支撑保守并发量为n,则后台服务器部署数量约为m/n。但鉴于后台服务器的新旧不一,性能不同,很难统一标准,故而选用加权轮询法具有一定的合理性。加权轮询机制即设置轮询概率,其权值和访问几率成正比,该策略可有效解决后台服务器性能不均的问题。

3.1.2 架构设计

大批量的多种类型终端通过网络同Nginx服务器通信,Nginx 服务器通过反向代理负载均衡功能将其同配电终端的通信连接按照策略分发给各配网前置服务器进行接入数据处理,硬件结构如图1所示。

3.2 方案实现

一般地,完成安装搭建Nginx 服务后,在路径/etc/nginx/下产生nginx.conf 配置文件,需要对该文件进行配置以实现反向代理负载均衡功能。鉴于策略评估分析得出的结论,选用加权轮询法进行相应配置。

假设经评估后,后台共需架设三台前置服务器,IP分别为192.168.188.136、192.168.188.137 和192.168.188.138,端口均为8668,且按照机器性能评估,第一台和第二台所能承受负载一样,第三台为第一台所能承受负载的两倍,则权重应配置为1:1:2。

具体配置使用方法如下:

打开/etc/nginx/nginx.conf 文件,注释原http 节点全部配置内容,新增stream 节点配置内容,如下:

以上stream 节点中,upstream backserver子节点内容为后台前置服务器的服务端IP 和端口。weight 为权值,默认为1,weight 越大,负载的权重就越大。server 子节点为Nginx 服务所在机器的相关配置,listen 后参数为监听端口,so_keepalive 配置为on 即可设置为配网业务中经常使用的tcp 长连接机制。此外,配置proxy_pass 地址即可使所有请求先通过nginx 反向代理服务器进行后台访问分发,proxy_timeout 参数决定上送数据时链接保持的时间,超过该时间通信链接就被释放掉。

4 结论

本设计方案在大量终端海量数据接入的配电业务背景下,运用Nginx 服务的反向代理负载均衡技术,一方面可以高效解决后台服务器的负载分配问题,充分利用Nginx 服务的负载均衡特性,充分发挥后台服务器性能,且能一定程度上保证后台服务器的持续稳定运行;另一方面,由于传统配电主站前置采集方式不能满足当前配网业务的需求,引入Nginx 服务解决该难题可当是行业内的一次革新应用,其资源消耗低、运行稳定等特性非常值得行业推广。

猜你喜欢

轮询后台前置
被诊断为前置胎盘,我该怎么办
前置性学习单:让学习真实发生
国企党委前置研究的“四个界面”
基于等概率的ASON业务授权设计∗
被诊断为前置胎盘,我该怎么办
后台暗恋
前台、后台精彩花絮停不了
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
以“后台”的名义节省电池用量