CN105718262A - 一种lnmp架构的部署方法 - Google Patents

一种lnmp架构的部署方法 Download PDF

Info

Publication number
CN105718262A
CN105718262A CN201610031355.6A CN201610031355A CN105718262A CN 105718262 A CN105718262 A CN 105718262A CN 201610031355 A CN201610031355 A CN 201610031355A CN 105718262 A CN105718262 A CN 105718262A
Authority
CN
China
Prior art keywords
mysql
mysqlnd
data base
lnmp
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610031355.6A
Other languages
English (en)
Inventor
沈文策
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201610031355.6A priority Critical patent/CN105718262A/zh
Publication of CN105718262A publication Critical patent/CN105718262A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种LNMP架构的部署方法,所述部署方法为:在LNMP架构中通过使用插件mysqlnd_ms实现LNMP架构中数据库mysql的读写分离,所述mysqlnd_ms是驱动mysqlnd的一个插件,该插件mysqlnd_ms实现连接保存和切换、负载均衡、读写分离的功能;再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结合socat来实现对故障从数据库的剔除。本发明简化了php编程语言的开发,对已经上线的项目可以不做修改而支持数据库mysql的读写分离,对mysql从数据库的可用性做检查,使得构架的整个系统数据保持一致性。

Description

一种LNMP架构的部署方法
技术领域
本发明涉及LNMP架构技术领域,尤其涉及一种LNMP架构的部署方法。
背景技术
LNMP架构在企业中使用广泛,LNMP架构即:Linux操作系统+Nginx网络服务器+MySQL数据库+PHP编程语言的架构;数据库常常是整个架构的瓶颈,通过对MySQL数据库的做读写分离可以有效提高数据性能,但是读写分离在程序上实现不容易,可以使用的中间件不成熟,中间件mysql-proxy官方都不推荐使用,而中间件阿米巴(amoeba)很早就停止更新。MySQL数据库实现主从分离后虽然降低了主库的压力,但是单台从数据库依然无法承受所有的读压力,因此一主多从的架构诞生,在从数据库前增加负载均衡器,很少有负载均衡器可以对从数据库的健康性做检查。要是从数据库存在着问题,就会导致整个架构的系统出现瘫痪。
发明内容
本发明要解决的技术问题,在于提供一种LNMP架构的部署方法,简化了php编程语言的开发,对已经上线的项目可以不做修改而支持数据库mysql的读写分离,对mysql从数据库的可用性做检查,使得构架的整个系统数据保持一致性。
本发明是这样实现的:一种LNMP架构的部署方法,所述部署方法为:在LNMP架构中通过使用插件mysqlnd_ms实现LNMP架构中数据库mysql的读写分离,所述mysqlnd_ms是驱动mysqlnd的一个插件,该插件mysqlnd_ms实现连接保存和切换、负载均衡、读写分离的功能;再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结socat(socat是一个多功能的网络工具,名字来由是“SocketCAT”,可以看作是netcat的N倍加强版,主要是用来在命令行来进行socket操作的命令,这样就可以在Shell脚本下行进socket网络通讯了)来实现对故障从数据库的剔除。
进一步的,所述部署方法进一步具体为:在PHP编程语言编译时加入PHP编程语言所支持的数据库mysql的驱动mysqlnd,驱动mysqlnd编译LNMP架构的参数,再对驱动mysqlnd安装mysqlnd_ms插件,通过mysqlnd_ms插件实现数据库的读写分离,则mysql主数据库进行写操作,mysql从数据库进行读操作,所述PHP编程语言程序支持读写分离,则在代理haproxy服务器上安装socat,socat通过命令行的方式来监控和管理代理haproxy服务器,通过脚本实时监测代理haproxy服务器后端的mysql从数据库,将故障的从数据库移出代理haproxy服务器集群。
进一步的,所述脚本实现方式具体为:通过在管理代理haproxy服务器运行的linux系统后台运行一个shell脚本,该shell脚本每隔一段时间检查后端mysql的状态来判断后端mysql从数据库的健康性,查找到不正常的mysql服务器后再通过socat来控制管理代理haproxy服务器,将后端故障的mysql从数据库移出代理haproxy服务器集群;如果shell脚本发现之前被标记为不健康的mysql从数据库又恢复正常,再通过该socat将已经正常的mysql从数据库加入代理haproxy服务器集群。
本发明具有如下优点:本发明通过使用插件mysqlnd_ms实现数据库mysql的读写分离,然后再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结合socat来实现对故障从数据库的剔除来实现高可用性,本发明能对已经上线的项目可以不做修改而支持数据库mysql的读写分离,对mysql从数据库的可用性做检查,使得构架的整个系统数据保持一致性。
附图说明
图1为本发明方法流程示意图。
图2为本发明方法LNMP架构的分布图。
具体实施方式
请参阅图1和图2所示,本发明的一种LNMP架构的部署方法,其特征在于:所述部署方法为:在LNMP架构中通过使用插件mysqlnd_ms实现LNMP架构中数据库mysql的读写分离,所述mysqlnd_ms是驱动mysqlnd的一个插件,该插件mysqlnd_ms实现连接保存和切换、负载均衡、读写分离的功能;再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结合socat来实现对故障从数据库的剔除。所述代理haproxy服务器提供高可用性、负载均衡以及基于TCP和HTTP应用的代理。
在本发明中,所述部署方法进一步具体为:在PHP编程语言编译时加入PHP编程语言所支持的数据库mysql的驱动mysqlnd,驱动mysqlnd编译LNMP架构的参数(在编程语言php5.3后支持的参数),再对驱动mysqlnd安装mysqlnd_ms插件,通过mysqlnd_ms插件实现数据库的读写分离,则mysql主数据库进行写操作,mysql从数据库进行读操作,所述PHP编程语言程序天生就支持读写分离,则在代理haproxy服务器上安装socat,socat通过命令行的方式来监控和管理代理haproxy服务器,这样对使用脚本来操作代理haproxy服务器提供了基础,通过脚本实时监测代理haproxy服务器后端的mysql从数据库,将故障的从数据库移出代理haproxy服务器集群。
所述脚本实现方式具体为:通过在管理代理haproxy服务器运行的linux系统后台运行一个shell脚本,该shell脚本每隔一段时间检查后端mysql的状态来判断后端mysql从数据库的健康性,查找到不正常的mysql服务器后再通过socat来控制管理代理haproxy服务器,将后端故障的mysql从数据库移出代理haproxy服务器集群;如果shell脚本发现之前被标记为不健康的mysql从数据库又恢复正常,再通过该socat将已经正常的mysql从数据库加入代理haproxy服务器集群。
总之,本发明通过使用插件mysqlnd_ms实现数据库mysql的读写分离,然后再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结合socat来实现对故障从数据库的剔除来实现高可用性,本发明能对已经上线的项目可以不做修改而支持数据库mysql的读写分离,对mysql从数据库的可用性做检查,使得构架的整个系统数据保持一致性。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (3)

1.一种LNMP架构的部署方法,其特征在于:所述部署方法为:在LNMP架构中通过使用插件mysqlnd_ms实现LNMP架构中数据库mysql的读写分离,所述mysqlnd_ms是驱动mysqlnd的一个插件,该插件mysqlnd_ms实现连接保存和切换、负载均衡、读写分离的功能;再使用代理haproxy服务器实现读数据库的负载均衡,并通过脚本结合多功能的网络工具socat来实现对故障从数据库的剔除。
2.根据权利要求1所述的一种LNMP架构的部署方法,其特征在于:所述部署方法进一步具体为:在PHP编程语言编译时加入PHP编程语言所支持的数据库mysql的驱动mysqlnd,驱动mysqlnd编译LNMP架构的参数,再对驱动mysqlnd安装mysqlnd_ms插件,通过mysqlnd_ms插件实现数据库的读写分离,则mysql主数据库进行写操作,mysql从数据库进行读操作,所述PHP编程语言程序支持读写分离,则在代理haproxy服务器上安装socat,socat通过命令行的方式来监控和管理代理haproxy服务器,通过脚本实时监测代理haproxy服务器后端的mysql从数据库,将故障的从数据库移出代理haproxy服务器集群。
3.根据权利要求1所述的一种LNMP架构的部署方法,其特征在于:所述脚本实现方式具体为:通过在管理代理haproxy服务器运行的linux系统后台运行一个shell脚本,该shell脚本每隔一段时间检查后端mysql的状态来判断后端mysql从数据库的健康性,查找到不正常的mysql服务器后再通过socat来控制管理代理haproxy服务器,将后端故障的mysql从数据库移出代理haproxy服务器集群;如果shell脚本发现之前被标记为不健康的mysql从数据库又恢复正常,再通过该socat将已经正常的mysql从数据库加入代理haproxy服务器集群。
CN201610031355.6A 2016-01-18 2016-01-18 一种lnmp架构的部署方法 Pending CN105718262A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610031355.6A CN105718262A (zh) 2016-01-18 2016-01-18 一种lnmp架构的部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610031355.6A CN105718262A (zh) 2016-01-18 2016-01-18 一种lnmp架构的部署方法

Publications (1)

Publication Number Publication Date
CN105718262A true CN105718262A (zh) 2016-06-29

Family

ID=56147197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610031355.6A Pending CN105718262A (zh) 2016-01-18 2016-01-18 一种lnmp架构的部署方法

Country Status (1)

Country Link
CN (1) CN105718262A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306955A (zh) * 2018-01-24 2018-07-20 北京万得嘉瑞汽车技术有限公司 一种车载终端大规模互联集群方法
CN111090527A (zh) * 2019-12-28 2020-05-01 辽宁振兴银行股份有限公司 一种基于mysql router 的MGR 读写分离和负载均衡方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN104504145A (zh) * 2015-01-05 2015-04-08 浪潮(北京)电子信息产业有限公司 一种实现数据库读写分离的方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN104504145A (zh) * 2015-01-05 2015-04-08 浪潮(北京)电子信息产业有限公司 一种实现数据库读写分离的方法和设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
余洪春等: "《构建高可用linux服务器》", 31 October 2014, 机械工业出版社 *
刘天斯: "《Python自动化运维技术与最佳实践》", 31 December 2014, 机械工业出版社 *
李开涌编著: "《PHP MVC开发实战》", 31 July 2013, 机械工业出版社 *
脚本之家: "《https://www.jb51.net/article/33638.htm》", 29 January 2013 *
风雪之隅: "《http://www.laruence.com/2011/10/05/2192.html》", 5 October 2011 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306955A (zh) * 2018-01-24 2018-07-20 北京万得嘉瑞汽车技术有限公司 一种车载终端大规模互联集群方法
CN111090527A (zh) * 2019-12-28 2020-05-01 辽宁振兴银行股份有限公司 一种基于mysql router 的MGR 读写分离和负载均衡方法

Similar Documents

Publication Publication Date Title
CN106156186B (zh) 一种数据模型管理装置、服务器及数据处理方法
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
US10042744B2 (en) Adopting an existing automation script to a new framework
US20150261546A1 (en) Baseboard management controller and method of loading firmware
CN104965754A (zh) 任务调度方法及任务调度装置
CN106598657A (zh) 一种云平台应用一键部署的方法
US20150261766A1 (en) Method and apparatus for determining a range of files to be migrated
WO2017020459A1 (zh) 一种为宿主配置插件包的方法与装置
CN103677870A (zh) 系统升级方法及采用该方法升级的系统
KR102545765B1 (ko) 메모리 오류를 검출하는 방법 및 시스템
CN104111843A (zh) 一种基于沙箱的脚本更新方法及系统
CN114077518A (zh) 数据快照方法、装置、设备及存储介质
US11036527B2 (en) Class splitting in object-oriented environments
CN105718262A (zh) 一种lnmp架构的部署方法
US9858059B2 (en) System module deployment optimization
CN104731626A (zh) 应用的安装方法及装置
CN112667711B (zh) 一种MySQL只读实例管理方法、系统及计算机可读介质
CN114003269A (zh) 组件处理方法、装置、电子设备及存储介质
CN104407808A (zh) 写入数据的方法和装置
CN104123135A (zh) 一种统一后台接口的方法及装置
US9400663B2 (en) Managing middleware using an application manager
CN110941658A (zh) 一种数据导出方法、装置、服务器及存储介质
US9021426B2 (en) Streamlining hardware initialization code
US9471338B2 (en) Hybrid discovery library adapter book processing
US10146529B2 (en) Monitoring rules declaration and automatic configuration of the monitoring rules

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160629

RJ01 Rejection of invention patent application after publication