大咖分享

浅谈分布式服务,分布式服务的前世今生
北大青鸟总部

摘要:分布式服务的核心就是资源复用,将原来一台机器做的的事情分多台机器做、原来一个应用程序做的事情分为多个小模块来做、拆分成了多个小模块后再把公共的部分抽离出来单独做,实现人力资源和物力资源的最大化。

要提供一项服务必须要有载体,线下就是我们的实体店,比如理发店提供理发服务、超市提供水果生鲜电商服务,而在线上的服务也需要载体,它是一个app、app背后是代码、代码后面是服务器。我们试想,如果今日头条把抖音全都部署在一个地方的一台服务器上了,即使这台服务器的CPU、内存、磁盘等配置都特别特别好,使用了世界上最好的服务器,假设一个极端的场景,全世界的人都来用抖音了,那么这台超级服务器本来只是承载中国13亿人的量,现在变成了70亿人,它还承受得住吗?它肯定会挂掉的,带来的结果是用户流失、企业经济损失严重,互联网内再也玩不起来了,大家只能像吃饭要预约一样,使用抖音也要预约了。不过人是最高级的生物物种就在于人拥有智慧,既然一台机器不够,那就多台机器,把我的代码部署在多个区域的多台服务器上,无论来了多少人都可以使用服务,这就和海底捞在全国各个区域开分店是一样的道理。这就是分布式服务思想。


接下来我以一个购物网站的演变来介绍分布式服务的发展。


Ø 1.0阶段— 单机版

在互联网早期的时候,由于网络费用贵、电脑贵、智能手机贵,所以并没有很多人在使用互联网的服务,那时候提供购物服务,只需要在一台服务器上部署应用程序代码(提供用户注册、商品浏览、商品购买等)和数据库(存储商品信息、用户信息、购买信息等)就可以了,让用户可以查看商品、购买商品。



Ø 2.0阶段— 单机改良版

随着移动通信技术如2g、3g技术的发展,使用网络成本开始降低,加上新一代的人成长起来,更愿意接受尝试新鲜事物,所以这会儿互联网开始有大量的人陆续涌进来了,原先只在一台服务器上部署的应用程序和数据库的方式承载不住这么多人,用户出现卡顿、闪退、页面错误等情况,聪明的人类就把应用程序和数据库分开部署了,这样的话应用程序和数据库都可以独享一个服务器的cpu和内存等资源。



Ø 3.0阶段— 分布式版

随着越来越多的人使用网上服务,大家发现特别的方便,物美价廉,线下实体店卖的东西都太贵了,所以经过一传十、十传百,海量的人都来网上购物了,即使将应用程序和数据库分别部署在不同的机器上,也不够用了。最主要的瓶颈还是在于应用程序方面,很多用户刷不开页面啊,聪明的人类又想到一个办法,把应用程序部署在多个服务器上,再通过负载均衡(即“指挥官”)把用户请求分发到不同的服务器上就可以了。



Ø 4.0阶段— 分布式升级版

海量的人来到了互联网上,就产生了海量的需求,每个人都有每个人自己的想法,希望好玩、有求必应等等。有的人看到互联网是一个大的机会,比如京东、拼多多等公司也涌入互联网了,竞争开始激烈起来,每个人都想把用户给留在自己的平台,大家都想着快速推出新的版本,好用好玩,把用户给留住,即敏捷开发、快速迭代。但是之前都是把所有的功能都放在一起的啊,不同的人开发不同的模块,最后一起提交测试上线,这存在三个问题:改起来不好改、要上线得等全部人都搞完、出现问题不好找。聪明的人类又又想到一个办法,那我就把这一个应用程序拆分的更细嘛,按照业务来拆分,A团队负责用户注册、B团队负责商品呈现服务、C团队负责购买服务,然后不同服务部署在不同的服务器上。



Ø 5.0阶段— 分布式精华版

现在差不多全世界的人都来到了互联网了,互联网公司抽离了这些人的共性推出了不同的产品,比如有的人喜欢物美价廉的商品,那就使用淘宝、有的人追求一些品质,那就使用天猫、还有的人比较小资,那就海淘。但是这三个产品都又有一些共性,它们的本质都是在线购物服务,都需要用户管理中心、商品管理中心、交易管理中心,如果把这些公共的部分再抽离出来,再来一群个性化的用户,是不是就能快速的开发应用了呢?毕竟最核心最基础的东西已经有了,只需要再开发一些个性化的东西就可以了,这就是现在最流行的技术设计思想— 中台。



通过上述的讲解,是不是对分布式已经了解了呢?分布式服务的核心就是资源复用,将原来一台机器做的的事情分多台机器做、原来一个应用程序做的事情分为多个小模块来做、拆分成了多个小模块后再把公共的部分抽离出来单独做,实现人力资源和物力资源的最大化。借助于分布式思想,再依托云计算,结合大数据、人工智能等,人们才能享受更好的服务、生活的更好~


相关阅读
戏说中台,一切都是最好的安排!
分布式事务那些事儿
收藏!分布式消息队列的避坑指南!
​终于有一篇文章把“事务”讲清楚了!
恶补分布式事务
热门推荐