自己作图分析分布式技术架构演化的常用套路

背景

大型互联网网站及应用是随着业务的逐步发展与不断创新慢慢演化而成的。在这个进化过程中,会有一些通用的问题需要解决,也会有一些常规的中间件需要构建,本文将对这个演化过程中涉及的分布式技术架构常用套路进行说明与分析。

1、单机架构

上线初期,负载较小,应用程序、数据库、文件等所有的资源都部署在一台服务器上。

架构上一般采用LAMP(Linux+Apache+Mysql+PHP)技术或Java MVC技术。

2、应用服务与数据服务分离

随着访问量的不断增多,服务器的负载持续升高,越来越多的数据及文件资源导致存储不足,这时候需要将应用服务与数据服务进行分离。

应用和数据分离后,不同特性的服务器承担不同的角色,并发处理能力和数据存储空间得到了改善。

原有的LAMP(Linux+Apache+Mysql+PHP)技术或MVC技术仍然能支撑这种架构。

3、应用服务器集群架构

单一应用服务器能够处理的请求连接有限,在业务访问高峰期内,应用服务器成了网站的最大瓶颈。

使用集群架构是解决高并发问题的常用套路:将来自用户的访问请求分发到应用服务器集群中的任何一台服务器上,使得单位时间内可以接纳更多的访问请求。

加入负载均衡调度服务:通过成熟的负载均衡系统可以有效分配外部请求的流量,使应用服务器的负载压力不再成为整个网站的瓶颈。

3.1 应用服务器集群架构下的Session管理

问题:同一客户的请求在负载均衡机制下,会被分配到不同的应用服务器,造成产生不同的Session,即同一个客户在同一网站下产生了不同的状态。

解决方案:引入基于Redis的K-V内存数据库,将用户请求产生的Session集中存储并共享,可解决Session不同步的问题。

4、数据库读写分离

业务量的急速增加,对于数据库的读写频率也会明显升高,数据库因为负载压力过高也成为网站的瓶颈。大多数业务对数据库的操作是读多写少,将数据库读库与写库分离,是解决此问题的常用套路。

应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到读数据库,即读数据库的数据与主数据库保持同步,这样当应用服务器读数据的时候,就可以通过读数据库获得数据。

应用服务器端使用专门的数据访问模块,比如通过Spring+Mybatis配置多数据源,实现应用端的读写分离。

5、利用缓存技术进行加速

数据缓存:将业务系统中的“热数据”放入缓存中,应用服务在读取这些数据中,直接从缓存中读取,可以减少数据库的访问压力,从而提高整个网站的数据访问速度。

使用反向代理和CDN加速网站响应:既加快了用户访问速度,也减轻后端服务器的负载压力。

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户。

6、分布式数据库系统与分布式文件系统

与应用服务一样,任何强大的单一服务器都满足不了持续增长的业务需求,单机的数据库系统与文件系统同样也会遇到瓶颈。

将不同的业务数据拆分到不同的数据库中,并将对应不同的业务数据库部署在不同的物理服务器上,形成分布式数据库系统。

同理存储的文件也可以按文件的业务属性进行拆分,并部署在不同的物理服务器上,形成分布式文件系统。

Mycat是现阶段流行的分布式数据库系统;常见的分布式文件系统有FastDFS等。

7、NoSQL数据库作为补充

互联网与大数据的高速发展,需要面对高效存储、高可扩展性等难题,NoSQL(Not Only SQL)数据库快速的查询响应,灵活的数据模型等特性,正好可以作为传统关系型数据的一个有力补充。

8、使用搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,大型互联网应用需要非数据库查询技术如搜索引擎。

Elasticsearch是一个实时的分布式搜索和分析引擎,可以用于全文搜索,结构化搜索以及分析,该技术目前在互联网行业得到了广泛应用。

9. 分布式服务

将大型应用中的功能按单一职责的原则进行拆分,每个拆分出来的功能都可被称为一项服务,通过中间件技术(RPC、消息队列、分布式事务等)实现各个服务之间的相互连接与通讯。

9.1 微服务

微服务也是一种分布式服务:把服务按单一职责原则进行拆分,形成更小的粒度,独立部署与运行,并由独立的团队负责服务的生命周期管理。

分布式架构设计常用的中间件技术

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354