码迷,mamicode.com
首页 > 其他好文 > 详细

XRZZYW带领你领略Nginx的强大,结合MM的风骚

时间:2018-04-12 20:55:54      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:Nginx反向代理   Proxy调度器   Mysql读写分离与主从同步   Memcache内存缓存   MM数据库集群   

@font-face {   font-family: "Times New Roman"; }@font-face {   font-family: "宋体"; }@font-face {   font-family: "Calibri"; }@font-face {   font-family: "DejaVu Sans"; }@font-face {   font-family: "方正黑体_GBK"; }@font-face {   font-family: "幼圆"; }p.MsoNormal { margin: 0pt 0pt 0.0001pt; text-align: justify; font-family: Calibri; font-size: 10.5pt; }h2 { margin-top: 13pt; margin-bottom: 13pt; page-break-after: avoid; text-align: justify; line-height: 172%; font-family: "DejaVu Sans"; font-weight: bold; font-size: 16pt; }h3 { margin-top: 13pt; margin-bottom: 13pt; page-break-after: avoid; text-align: justify; line-height: 172%; font-family: Calibri; font-weight: bold; font-size: 16pt; }span.msoIns { text-decoration: underline; color: blue; }span.msoDel { text-decoration: line-through; color: red; }div.Section0 {  }

 

Nginx反向代理与MM数据库集群




技术分享图片

前言:

    距离上一篇博文已经N多年了,今天小弟学习到了有关Nginx的更多详细内容,想要跟大家分享一下,但是具体的配置步骤我就不一一罗列出来了,因为毕竟你了解了他的整个逻辑与思路,那么那些配置套路对于你来说就是小case啦.不外忽就是三步:装包配置起服务

    上面的标题是我自定义的,其中MM代表的是Mysql与Memcache;

    不得不说这是个很简陋的图,比那些高可用高负载什么的实在简陋太多.但毕竟是提供一种思路,所以越简洁越好.

    上面的(1)(2)(3)(4)在下面的第六部分上有说到.


.正常逻辑:

Client访问Nginx调度器

调度器转发给后端Web服务器

Web通过动态语言(如PHP)以读写方式访问Mysql

Mysql返回结果给Web,Web -> Proxy -> Client

 

.弊端:

以下是读写速度的对比

CPU缓存 > 内存 > 磁盘 > 数据库

数据库读写速度是最慢的,影响客户体验


.分析:

Nosql上场,常见的Nosql有Mencache,Big,MongoDB

Nosql与传统关系型数据库不同的地方在于:

Nosql采用Key-Value 和 Ducument 形式存储数据,具有高并发,高扩展,由于他是缓存在计算机内存中的,读写速度极高.但有个致命缺点:

过段时间会清空缓存,数据会丢失.

这时关系型数据库可以很好的解决这个问题,他采用关系型存储,数据与数据之间必然有关联,有主键等规范用法.查询数据便利,有规范的SQL语句.数据不易丢失,,Mysql读写分离与主从同步可实现高可用;但关系型sql有个致命缺点:

数据读写最慢.


.这样,MemcacheMysql成为互补的关系:

Memcache提升Mysql的读写速度

Mysql为Memcache妥善保存数据


.只要实现MysqlMemcache同步就可以解决问题


.这样就有了整个逻辑(有两种情况):


1.当Mencache缓存并未清空时:

Client第一次以写访问Nginx调度器

调度器转发给后端Web服务器

Web通过动态语言(如PHP)缓存写入Memcache

(3)Memcache同时将数据备份到Mysql

Client以读访问Nginx调度器

调度器转发给后端Web服务器

(2)Web通过动态语言(如PHP)读取Memcache

(1)Memcache返回结果给Web,Web -> Proxy -> Client


2.当他清空了缓存:

Client第一次以写访问Nginx调度器

调度器转发给后端Web服务器

Web通过动态语言(如PHP)缓存写入Memcache

(3)Memcache同时将数据备份到Mysql

Client以读访问Nginx调度器

调度器转发给后端Web服务器

(2)Web通过动态语言(如PHP)读取Memcache

(4)Memcache发现无缓存,从Mysql读取备份数据后并缓存

(1)Memcache返回结果给Web,Web -> Proxy -> Client

 

 

 


XRZZYW带领你领略Nginx的强大,结合MM的风骚

标签:Nginx反向代理   Proxy调度器   Mysql读写分离与主从同步   Memcache内存缓存   MM数据库集群   

原文地址:http://blog.51cto.com/chenjunye/2097584

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!