热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql分布式集群架构图_一个分布式服务器集群架构方案

0x01.大型网站演化简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。集群主要分为࿱

0x01.大型网站演化

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

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

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

之前在网上看到一篇关于大型网站演化的博客。

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

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

32adb941e3f3f0b46bdbefb40f209192.png

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

4676b2257a146e84991bb6aa7a479f1f.png

0x02.关于均衡负载方案

在上一篇,讨论过过的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节点进行检测和负载均衡;

f4f4fe2de3f9c60ec61b30621154faec.png

0x03.关于Redis缓存方案

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

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

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

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

关于memcached与redis,看这篇

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

640bf4d1845cb9ed6b2ceb6e4eb53575.png

一篇关于Reids缓存方案。

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

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

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

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

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

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

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

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

0x06.关于分布式MySQL方案

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

0x07.分布式集群方案

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

7266cc4468217d083c63e85ec9ca9c32.png

核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx1.     项目核心代码结构截图

70cb48a6ac3f53fdef777f565100a71d.png

项目模块依赖

dfb6f49d57bc207cebbca2770e83a36e.png

特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化

2.    项目依赖介绍

2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:

65e974a5488f01cd713912d7de08443a.png

2.2 Dubbo独立服务项目依赖如下图:

a2f9c78937b26a6d434c81f8f5854a0f.png

3.  项目功能部分截图:

2a1c40f33ec5ffc5bb6c4b3cef32df06.png

8a1b123e424d6e3954e8d2ae9e2fa2c9.png

31a35603d896c3fae778a0edb2b750c2.png

44f723948a51dbb005bb5b1c4db50d09.png

4d09dceefa4588ca47e5dc758fd0142e.png

a84e24b38de61f07c0e51de12b852858.png

5088efaafdfd2e7650388e2648b862e6.png

zookeeper、dubbo服务启动

06c74ea8eb929294ca5511c6304cd4f3.png

a345ae2132e84d0e21ad2255b81569ce.png

dubbo管控台

b9ff205c4fd224e0d9e00fef4c53c839.png

5f198a95dfb04f453c5be82b8a8b04d1.png

feef65447cb26ce1f47cce446f85b61f.png

feef65447cb26ce1f47cce446f85b61f.png

eaba10970d371b08f79919c61da6a431.png

c830b350a73e6856b05d462bb608f63e.png

5dc3b43510d0cb014c588a74824cccc0.png

REST服务平台

d49437d9c49aa243cace7d6c22f5ad38.png

dfbfe515c7170c348ef54c533dc181b1.png

276e396128254f72b7941fe756de8ebd.png

ca72fce5fa1b799550325acaa0dfced7.png



推荐阅读
author-avatar
爱音乐的李雪梅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有