CN105718262A - 一种lnmp架构的部署方法 - Google Patents
一种lnmp架构的部署方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
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架构即: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服务器集群。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及系统 |
CN104504145A (zh) * | 2015-01-05 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据库读写分离的方法和设备 |
-
2016
- 2016-01-18 CN CN201610031355.6A patent/CN105718262A/zh active Pending
Patent Citations (2)
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)
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)
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 |