文档章节

分布式架构浅谈

steven
 steven
发布于 2016/03/27 20:59
字数 1225
阅读 95
收藏 13

http://homeway.me/





0x01.大型网站演化

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),科学计算集群(High Performance Computing Cluster)。

分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

之前在网上看到一篇关于大型网站演化的博客。http://www.cnblogs.com/leefreeman/p/3993449.html

每个大型网站都会有不同的架构模式,而架构内容也就是在处理均衡负载,缓存,数据库,文件系统等,只是在不同的环境下,不同的条件下,架构的模型不一样,目的旨在提高网站的性能。

最初的架构只有应用程序,数据库,文件服务。


到后来,分布式服务、集群架设。




0x02.关于均衡负载方案

在上一篇,《Nginx反向代理实现均衡负载》讨论过过的nginx现实均衡负载方案,这里选择另一种HAProxy+Keepalived双机高可用均衡负载方案。

HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。

不论是Haproxy还是Keepalived甚至是上游服务器均提高生产力并增强可用性,也就是如下架构中Haproxy,Keepalived,Httpd服务器任意宕机一台服务还是可以正常运行的。

HAProxy的优点:

1、HAProxy是支持虚拟主机的,可以工作在4、7层(支持多网段);

2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;

3、支持url检测后端的服务器;

4、本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的;

5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡;




0x03.关于Redis缓存方案

缓存分为服务器缓存和应用程序缓存。

关于应用程序内缓存,已经在Jue后台框架里面做了模块处理了。

关于服务器缓存,主要缓存服务器文件,减少服务器和php交互,减少均衡负载服务器和应用程序服务器交互。

缓存里面有一种典型的memcached,现在用的多的是redis轻量级缓存方案。

关于memcached与redis,看这篇 《Memcached vs Redis?》

Redis主要将数据存储在各种格式:列表,数组,集合和排序集,一次能接受多个命令,阻塞读写,等待直到另一个进程将数据写入高速缓存。


一篇关于Reids缓存方案。《高可用、开源的Redis缓存集群方案》




0x04.关于搜索引擎Sphinx方案

(第一期不做,后期需求时候考虑)

Sphinx是俄罗斯人开发的,号称是很吊啦,千万级数据检索,每秒10MB/s,搭过环境。

Sphinx和MySQL是基于数据库的全文引擎,创建索引是B+树和hash key-value的方式。

原理类似于用底层C检索MySQL,然后弄出一个sphinx.conf配置文件,索引与搜索均以这个文件为依据进行,要进行全文检索,首先就要配置好sphinx.conf,告诉sphinx哪些字段需要进行索引,哪些字段需要在where,orderby,groupby中用到。

Sphinx中文




0x05.关于NoSQL快速存储方案

NoSQL在这里的使用价值是处理一些琐事,比如用户个人网站的一些css值,height,width,color等等的小而繁多的数据,采用NoSQL旨在提升数据库速度,减少对MySQL的SELECT请求。

关于NoSQL的方案很多了,选一个简单的MongDB好了。




0x06.关于分布式MySQL方案

(做分布式MySQL还没尝试过,初期也不清楚mysql所需要的压力,所以第一期不打算做分布式MySQL)

《标准MySQL数据库外的5个开源兼容方案》




0x07.分布式集群方案

综合起来,大致就是如下模型,初探分布式架构,很多模块将就形势做调整,时时更新中,待续。。。




本文出自 夏日小草,转载请注明出处:http://homeway.me/2014/12/10/think-about-distributed-clusters/


© 著作权归作者所有

共有 人打赏支持
steven
粉丝 14
博文 77
码字总数 58589
作品 0
深圳
私信 提问
[转]浅谈千万级PV/IP规模高性能高并发网站架构

[转]浅谈千万级PV/IP规模高性能高并发网站架构 Run - 学习练习复习2016-02-28161 阅读 架构IP并发 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。 如果把来访用户...

Run - 学习练习复习
2016/02/28
0
0
阿里巴巴资深大数据工程师:大数据处理实践

本文首先浅谈了大数据处理发展历程和MapReduce的诞生,我是大数据爱好者,建了一个大数据资源共享群722680258每天分享大数据搭建学习方法,以确定大数据处理系统的实现模式,接着重点分享了M...

董黎明
01/12
0
0
浅谈 CAP 理论

原文同步至 本文介绍了介绍了分布式系统著名的 CAP 理论。什么是 CAP 理论?为什么说 CAP 只能三选二?了解 CAP 对于系统架构又有什么指导意义?本文将一一作答。 什么是 CAP 理论 在计算机科...

waylau
2016/02/28
3.7K
10
浅谈web架构之架构设计

前言 题目有点大,所以不可能说得非常具体,笔者也不能驾驭全部。 前面介绍过网站发展过程中架构的演化过程,本文主要针对网站架构各个方面的建设进行简单介绍。 架构模式 先来说说模式:每一...

看看这天
2016/10/20
22
0
了解大数据开发及和大数据相关的技术

在现如今,随着互联网技术飞速的发展,目前有不少朋友询问关于大数据方面的问题,比如什么是大数据开发啊,和大数据相关的技术是什么呢等问题,我们今天就浅谈一下大数据开发及和大数据相关的...

卢家大少
2018/06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
今天
7
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
6
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
11
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部