架构的演进

序:
从第一次玩DOS到如今n年了,想当初将5.25吋盘锁入电脑后,输入dir,看到屏幕的输出兴奋不已。
毕业后写基于C/S的VB/VC应用,写ASP/PHP/JSP/ASP.NET的网站,一直就是简单的系统。
曾经以为代码写得简洁无BUG就是最高境界了。不曾想过其他,直到开始带一队人写平台才了解了架构的重要。

本文编撰于2018.12.16

本文简单描述基于B/S从简单单体应用到分布式的应用的架构演变,作为故事也许不够完美。

1.

故事开始

故事开始于某年月日,七哥读了几本书,写了几年代码,忽觉胸有点墨,不吐不快,于是乎准备做一个技术日记站。既能记录点滴又能分享给别人,岂不快哉?

凭着几年码民生活经验,七哥很快就写出了如下站点结构:
单体架构
如上图,就是一个单体架构:使用Tomcat作为应用容器,静态资源由Nginx负责解析,数据直接DB存储,文件上传到file目录。非常简单,也非常适用,经济又环保。

2.

主从库分离

随着时间的推移,七哥的博客写的内容多了,兴许日记内容还有点价值,访问的人慢慢多了,同时小伙伴们开始抱怨网站访问速度慢。
七哥咬咬牙,升级了硬件配置,访问速度暂时得到了缓解。
可惜好景不长,很快又被小伙伴们抱怨太慢了。

且等,为什么还会慢?左思右想,经过试验+log排查,发现主因在于DB。于是乎马上想到了解决方案:
读写分离

如上图,读写分离之后,写库操作不影响读库。主从库的调整对于日记分享这种读多写少的情景是非常有利的。经过数据试验实际效果相当不错,似乎可以高枕无忧了。如此简单而经济的提升方式,想想都开心。

3.

应用、数据、文件分离

七哥的博客有了流量之后,七哥的很多小伙伴要求也要加入码字的行列,因此程序进行了升级变成了多人博客系统。
一时间,流量有了平方数的增长,大家不亦乐乎。
紧接着服务器无响应的事情发生的频率越来越高。甚至有些小伙伴码字半天提交的东西,不见了???

七哥上服务器一查,CPU爆了,内存爆了...经过几个小时的奋战,很快就解决了问题。这次七哥采用了如下的方式:
服务器从一台到多台
很简单吧,把一台服务器干的活分拆成3台。只是服务器的配置,并没有动到一点点的代码。面对多快好省的解决方案情不自禁的开了一瓶可乐奖励自己。
然而故事并没有结束。

4.

动静分离、加缓存

在多服务器的支撑下,服务质量提升了,但是光靠硬件提升服务水平,似乎稍逊风骚了。琢磨片刻,七哥一整键盘飞舞,在DB和应用间增加了缓存服务。如下图:
缓存+动静分离

这次赢回了码民的面子,关键还提升了服务效用。感觉整个世界都为之喝彩。

5.

负载均衡

随着博客的流量越来越高,七哥的博客也增加了相应的服务,诸如:积分,笔记,礼品等。

随着这些服务的上线,为了更好的服务小伙伴,于是乎买了更多的服务器,增加了负载均衡,同时也做了Session服务器解决了多应用服务器间登录和共享问题。
负载均衡

如上图,至此,七哥的系统已经可以服务相当大的一群人了。

6.

服务拆分+NOSQL

在经历一段高速发展之后,七哥的博客也升级成了一个阅读平台,平台必须有个好听的名字,该叫什么呢,比如luckread.com?并且电商功能、朋友圈等功能也迅速让系统臃肿起来,犹如铁链串起来的一批船,着实壮观,但行动缓慢。

为此,七哥拿出了下图的方案,开始了业务的分拆之路。
服务拆分

7.

分布式

终于,经过多轮应用的分拆,系统渐渐向分布式演变。如下图:
分布式

上图,每个应用都成了独立服务,负责单独的业务,简单而简洁。
撇开成本不表,分布式的引入,对于不爱写Java的Python小伙伴是极开心的;对于写Java的小伙伴来说,再也不用看那么多无关的文档了,简单而快乐。对于七哥来说,luck read 好像可以稳稳的运行了。

8.

未完

其实,故事应该编完了,有了这么一个高流量的luck read,在这流量时代,应该是收获满满的。然而这仅仅是一个故事,仅仅是为了说明架构的演变。
末尾,再附上一张图,引入了DNS轮询概念,如下:


DNS轮询

故事结束。

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

推荐阅读更多精彩内容