Posted in Java, 技术

一、大型网站技术架构演化

Writer      :BYSocket(泥沙砖瓦浆木匠)

2016年的书 --- A Year Of Books


大型网站系统的特点

  • 1、高并发,大流量
  • 2、高可用:7*24小时不间断服务,不宕机

  • 3、海量数据储存及管理

  • 4、网络复杂

  • 5、安全性

  • 6、易扩展,可伸缩:需求快速变更,发布频繁

  • 7、渐进式发展:脸谱网是宿舍,谷歌是斯坦福大学实验室,淘宝是马云家

一句话,高可用,高性能,易扩展,可伸缩且安全的网站。

大型网站架构演化发展历程

1、初始阶段

    单机服务器:应用程序+数据库+文件都在一台服务器上。

  • 2、应用服务和数据服务分离

    应用服务器,文件服务器和数据库服务器。

中间通过通信的是:HTTP/Socket

  • 3、缓存

    二八定律。核心集中在百分之20

    缓存分两种:应用服务器上的本地缓存 和 缓存在专门分布式缓存服务器的远程缓存

    其中Ehcache 简介:(通过RMIJGroupsJMS进行的异步或同步的缓存复制、支持的通过RMI、JGroups或JMS进行的异步或同步的缓存复制、可靠的分发:使用TCP的内建分发机制、面向资源的RESTful,还有就是SOAP)

  • 4、应用服务器集群

    集群是常用手段,实现系统的可伸缩性。

    通过负载均衡调度服务器,将请求分发任何一台服务器。

  • 5、数据库读写分离

    读部分(缓存不命中或者过期) 和 全部写操作要访问数据库

    主从热备-数据库同步

  • 6、反向代理nginx CDN加速网站响应

    原理:缓存

    CDN:就近的网络提供上机房。反向代理缓存这用户请求的资源。

  • 7、分布式文件系统分布式数据库系统

    单表数据规模很大的情况,常用手段是业务分库。

8、NoSQL搜索引擎

    数据存储及大规模数据的检索

    NoSQL场景: 场景:储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。

  • 9、业务拆分

    分而治之,业务分成各个产品线。然后各个应用服务器。

    应用之间通过超链接或者消息队列进行数据分发。

10、分布式服务

    SOA、云服务

小结

云计算服务,可以让一切技术资源:计算,存储,网络按需购买即可。

欢迎点击我的博客及GitHub — 博客提供RSS订阅哦!

———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-

微         博:BYSocket  豆         瓣:BYSocket  FaceBook:BYSocket  Twitter    :BYSocket



发表评论

电子邮件地址不会被公开。 必填项已用*标注