当前位置:首页 > 公司动态 > 工程建设

行业纵览∣浅谈省级工程建设项目审批管理系统中高可用MySql架构的部署与应用

2020-05-28 13:56:07

工程建设项目审批制度改革是党中央、国务院在新形势下作出的重大决策,是推进政府职能转变和深化“放管服”改革、优化营商环境的重要内容。2019年3月13日,国务院办公厅印发了 《关于全面开展工程建设项目审批制度改革的实施意见》(国办发〔2019〕 11号),要求建立完善工程建设项目审批管理系统。地级及以上地方人民政府要按照“横向到边、纵向到底”的原则,建设覆盖地方各有关部门和区、县的工程建设项目审批管理系统,并与省级工程建设项目审批管理系统、国家工程建设项目审批管理系统对接,实现审批数据实时共享。

工程建设项目审批体系对于审批数据的实时性要求高,《工程建设项目审批管理系统数据共享交换标准V2.0》要求“城市工程建设项目审批管理系统运行产生的数据,在5分钟内应上传到省级工程建设项目审批管理系统和国家工程建设项目审批管理系统”。省级工程建设项目审批管理系统(以下简称“省级系统”)处于工程建设项目审批数据三级上报体系的中间层,承担着接收城市工程建设项目审批管理系统(以下简称“城市系统”)数据以及向国家工程建设项目审批管理系统(以下简称“国家系统”)推送数据的任务,因此,采用高可用的数据库架构,确保省级工程建设项目审批管理系统数据上报的时效性和稳定性,是实现整个工程建设项目审批数据实时共享的重要保障。

奥格智能凭借领先的业务能力和过硬的技术力量承接了福建省、湖北省、河北省、陕西省、贵州省、江西省、青海省、新疆自治区、新疆兵团、内蒙古自治区等多地省级系统的建设。本文基于工程建设项目审批监管数据的上报体系,介绍我司使用高可用MySQL架构保障省级系统实现工程建设项目审批数据上报持续性和实时性的案例。

 

审批数据三级上报体系

 

工程建设项目审批数据的上报为三级上报体系,由城市系统上报给省级系统,再由省级系统上报给国家系统。省级系统采用“前置机+通知接口”的方式接收城市系统推送的审批数据,为每个城市分配前置库账号和通知接口账号。城市系统运行产生的数据实时推送给省级系统前置机,同时调用省级系统的通知接口,省级系统接到通知后对城市系统的数据进行质量校验,汇聚数据到正式库,同时向国家系统推送审批数据。


图1:审批数据三级上报体系图

 

各个地市系统的工程建设项目审批数据推送到省级系统的前置数据库,为提升数据的时效性,在省级系统前置机中建立省级系统的正式数据库,用于汇集地市系统的审批数据并开展校验。

从审批数据三级上报体系可以看出,审批数据要实现与国家系统的实时共享,省级系统的可用性对数据上报的持续性和实时性起着至关重要的作用。

 

高可用MySQL架构设计

由于各个地市系统的工程建设项目审批数据量大,对省级前置机的访问频次高,前置数据库服务器负载压力大,一旦前置机出现故障,数据上报链路中断,数据无法上报给省级系统和国家系统,将导致监督考核统计结果不准确,影响各级领导层的监管决策。为保障数据上报持续性和实时性,减轻前置数据库服务器的负载压力,奥格智能通过设计一套高可用的MySQL数据库架构,利用主从备份、读写分离和双机热备技术,实现审批数据热备份以及服务器故障后的自动切换,从而确保数据上报的安全、可靠和持续性。

 

1.MySQL主从同步

在MySQL数据库的备份应用中,主从复制结构应用比较广泛,数据同步和实时性都很高,能满足大部分的应用需求。部署MySQL主从同步,增加从服务器,实现主从服务器数据实时备份,可避免因服务器故障导致的数据丢失,并为实现读写分离奠定基础,从而提升数据库的性能。

Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。通过主从同步机制,省级系统前置机主库的所有操作都会被记录下来,然后省级系统前置机从库会接收到日志副本,执行日志中的语句,即可实现数据的同步。

图2:MySQL主从同步示意图

 

一、主从同步的原理

(1)Master服务器将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

(2)Slave将Master的binary log events拷贝到它的中继日志(relay log);

(3)Slave重做中继日志中的事件,同步数据。

二、主从复制配置步骤

(1)增加一台服务器用做省级系统前置服务器的从库;

(2)从省级系统前置机主库中导出一份完整的结构和数据,导入到从库中,确保从数据库与主数据库里的结构和数据完全一致;

(3)在主数据库里创建一个同步账户授权给从数据库使用;

(4)配合主数据库,修改配置文件,启用binlog日志,设置服务器标识符server-id为2(必须比从库id大),重启Mysql服务;

(5)配置从数据库,修改配置文件,设置服务器标识符server-id为1,启用中继日志relay log,重启Mysql服务;

(6)配置并启动主从复制。

 

2.Mycat实现读写分离

省级系统应用服务器对前置机数据库服务器的操作包括读数据和写数据,容易造成负载压力过大,因此采用“读写分离”的方式来减少服务器压力,将读数据的操作全部交给从库处理,减少对前置机服务器主库的请求量,从而实现负载均衡。

Mycat是一个广受好评的数据库中间件,在处理数据库操作上已经很成熟,在本方案中使用Mycat来实现数据库的读写分离。

图3:Mycat部署读写分离部署示意图

 

一、省级系统读写分离的步骤

(1)省级系统主库与省级系统从库实现主从复制功能;

(2)应用端(MySQL客户端或应用程序)发起读写请求;

(3)Mycat服务器对读写请求进行分发,将写操作发送给省级系统主库处理,读操作发送给省级系统从库处理。

二、Mycat读写分离配置操作步骤

(1)配置Mycat账号密码和数据库名(server.xml);Mycat作为数据库的中间件,对于上层应用来说,它就是一个数据库。因此需要配置数据库的用户名,密码,数据库名,以及读写权限;

(2)在 schema.xml 文件中配置读写分离,包括数据库配置、分片配置、物理数据库配置和读写服务器信息配置;

(3)启动Mycat,在配置文件server.xml中设置全局sql防火墙,将需要访问Mycat的ip加入到whitehost(IP白名单)中。

 

3.双机热备+Keepalived实现故障切换

在前文中通过Mycat和MySQL主从复制实现了数据库的读写分离和数据备份,这种结构很大程度保证了MySQL的高可用,但是对于省级系统前置库这种写操作特别频繁的服务器环境来说,写操作的要求很高,一旦主库宕机,无法实现数据库的自动切换,同样会造成数据上传中断,影响到实时性,因此需要部署双主互备架构,避免主节点故障造成写操作失效。

本节主要介绍利用Keepalived+MySQL双主来实现 MySQL 数据库故障自动切换。基于主从复制结构的基础上,当主库出现故障时,从库能自动接管主库的功能,向外提供服务,且将自身设置为主库,将这个故障时间和影响缩短至最小,5秒内可切换完成。待原主库修复后,会自动进入从库的备份角色,如此循环。 

将虚拟IP和端口提供给地市工建系统,地市工建系统通过访问虚拟IP和端口上传数据,虚拟IP通过keepalived判断双主备份的服务器节点情况,自动选择处理的服务器,当主节点服务器宕机时,自动切换至备节点服务器,从而保障省级系统数据上传持续性和实时性。

 

图4:MySQL双机热备+keepalived部署示意图

 

Keepalived+MySQL双主来实现MySQL-HA,必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台MySQL数据库,保证系统的高可用。

在双主互备的基础上加上keepalived,在其中一台机器上绑定虚拟ip(VIP)。利用vip统一对外服务,可以避免在两个节点同时写数据造成冲突。同时当keepalived主节点发生故障时,keeplived会自动将VIP切换到备节点上,从而实现主服务器的高可用。

 

一、MySQL双主互备+keepalived架构部署

(1)增加一台服务器用于与省级系统前置库实现双主互备,基于MySQL主从复制,对每台服务器都进行同样的主从设置;

(2)对两台服务器均安装keepalived,并进行相关的配置;

(3)对主节点keepalived进行配置,设置priority为100,增加参数nopreempt,设置不抢占模式,配置对外的服务器IP(VIP);

(4)对备节点keepalived进行配置,设置priority为90,配置对外的服务器IP(VIP);

(5)启动keepalived,通过故障模拟,测试VIP的漂移情况(即主节点宕机后,是否能自动切换至备节点)。

 

省级系统服务器架构部署

 

省级系统使用三台数据库服务器实现MySQL的高可用架构,一台服数据库服务器作为省级系统主库,两台数据库服务器作为省级系统从库。省级系统主库A承担省级系统前置数据库的数据汇集和省级系统应用的写操作,两台数据库服务器作为省级系统从库,分别用于读写分离和双机热备。

省级系统从库B用来与省级系统主库A形成双机热备,使用VIP对外提供服务,keepalived监测服务器情况,当省级系统主库A出现故障时,省级系统从库B自动接管主库的操作。

省级系统从库C作为省级系统主库A的备份库,承担省级应用的读操作和数据统计分析。省级系统访问数据库服务时,通过中间件MyCat实现读写分离将写操作发送给省级系统主库A处理,读操作发送给省级系统从库C处理,从而减轻对省级系统主库A的负载压力。

图5:省级系统服务器部署示意图

 

结语

奥格智能基于工程建设项目审批监管数据的上报体系打造的省级系统,具有高可用性和稳定性的特点,能保障工程建设项目审批数据上报的稳定性和实时性,满足国家对审批数据实时共享的要求。

通过对省级工程建设项目审批管理系统的建设,奥格智能凭借其信息化支撑能力,助力于工程建设项目审批制度改革,为工程建设项目审批制度改革的成功提供了强有力的技术保障,可有效提升工程建设项目审批管理及服务水平,辅助政府决策,从而更好地服务群众与企业,优化营商环境。

 

 

 

 
联系我们
  • 时间:周一至周五9:00-17:00
  • 电话:020-37020096
  • 地址:广东省广州市天河区高普路
  • 1029号C栋二楼、三楼
 
  • 智慧水务、智慧城建专线
  • 18903079135
  • 智慧规划、勘测业务专线
  • 18903079039