美文网首页
系统架构演进之路

系统架构演进之路

作者: bernierayxu | 来源:发表于2019-04-29 23:05 被阅读0次
1. 系统架构演进是什么样的?
  • 小型网站的技术栈一般是LAMP,并且直接购买别人写好的模板,修修改改+汉化,快速成型。这就是第一版的淘宝所用的技术。
  • 随着数据越来越多,存储空间开始不足,性能也大大减小(即并发能力下降)。
  • 应用服务器和文件/数据服务器分离。


    各种类型的服务器需要的硬件资源
  • 数据库压力变大,先用本地/服务器缓存(redis/memcached)来改善。
  • 单一应用服务器压力变大,则采用集群+负载均衡的方式来改善。


    负载均衡
  • 数据库再一次压力变大,此时采用读写分离,利用主从复制的方式搭建数据库集群。此时应用程序中需要数据读写模块。


    读写分离模块
  • 因为用户规模的扩大,来自不同地域的用户来进行访问,但是性能可能因为地域而产生差异。此时需要反向代理和CDN(CDN适用于静态资源)。而反向代理也是缓存,部署在服务器的最外层,有可能和负载均衡服务器是同一个。
  • 因为单个数据库或者单个文件系统不能存储了,需要用到分布式文件系统和分布式数据库。其中hadoop等大数据处理的块至少是64MB一块,不适合用FastDFS来存储。


    分布式文件系统和分布式数据库
  • 因为数据存储的字段差异越来越大,会造成骷髅表;所以需要用到NoSQL;
  • 因为文字检索的需求越来越大,原来的索引可能就没有效果了;所以需要用到搜索引擎;其中solr和elasticsearch都是基于lucene进行开发的,拿来就可以使用,而lucene是一个搜索开发工具包而已,需要额外集成。


    搜索引擎
  • 业务发展越来越大,牵一发而动全身;此时需要进行业务拆分。不同的产品线通过MQ建立关联。
  • 业务再继续增大,但是不同业务之间有相同的业务单元,此时需要将相同的业务单元服务化,变成微服务。同时会引入配置中心。其中dubbo框架用到的配置中心是zookeeper


    微服务框架和配置中心
  • 再往后还需要什么功能?数据挖掘/推荐/分析,还有庞大的问题监控和分析等功能。此时需要引入大数据,日志分析,监控系统。


    大数据,日志分析,监控系统
  • 最后成型的架构系统是什么样的?


    最终架构系统
2. 服务化的方式有哪两种?
  • SOA,所有服务需要链接ESB(企业服务总线),ESB是个中心点,是个瓶颈。所有的数据需要传给ESB,然后再传回去给调用者。
  • 微服务,则是调用者直接去访问被调用者,没有ESB。但是涉及到服务之间的依赖关系的治理。


    服务化方式
3. 系统架构的思路是什么?
  • 有些可以通过业务去解决业务的问题的方法,就不要用技术。
  • 例如12306分时售票,分时段来销售不同路线的票。


    架构思路
    架构思路

相关文章

网友评论

      本文标题:系统架构演进之路

      本文链接:https://www.haomeiwen.com/subject/bnaunqtx.html