分布式网站架构知识点总结(一):应用+特点+架构模式

目前企业应用的架构其实有很多,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等。和这些架构相关的管理型技术方法也有很多,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等。

分布式网站架构知识点总结(一):应用+特点+架构模式

最近对分布式架构研究的比较多,为了加深学习印象,自己汇总了一些关于分布式架构比较细化的知识点,觉得有用的小伙伴可以同步收藏和转发,当然加个关注以后我分享干货将会更卖力。

一、什么是分布式架构?

分布式系统(distributed system) 是建立在网络之上的软件系统。

· 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。

· 透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。

在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。简单来说:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。

分布式系统作为一个整体对用户提供服务,而整个系统的内部的协作对用户来说是透明的,用户就像是指使用一个mysql一样。如:分布式mysql中间件 mycat ,来处理大并发大数据量的构架。

分布式网站架构知识点总结(一):应用+特点+架构模式

二、分布式架构有哪些应用

  1. 分布式文件系统:例如:出名的有 Hadoop 的 HDFS, 还有 google的 GFS , 淘宝的 TFS 等
  2. 分布式缓存系统:例如:memcache , hbase, mongdb 等
  3. 分布式数据库:例如:mysql, mariadb, postgreSql 等
  4. 分布式webService

三、大型分布式网站的特点

  1. 用户多,分布广泛
  2. 大流量,高并发
  3. 海量数据,服务高可用
  4. 安全环境恶劣,易受网络攻击
  5. 功能多,变更快,频繁发布
  6. 从小到大,渐进发展
  7. 以用户为中心
  8. 免费服务,付费体验

四、大型分布式网站架构目标

  1. 高性能:提供快速的访问体验。
  2. 高可用:网站服务一直可以正常访问。
  3. 可伸缩:通过硬件增加/减少,提高/降低处理能力。
  4. 安全性:提供网站安全访问和数据加密,安全存储等策略。
  5. 扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块。
  6. 敏捷性:随需应变,快速响应。

五、大型分布式网站架构模式

  1. 分层:一般可分为,应用层,服务层,数据层,管理层,分析层;
  2. 分割:一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。
  3. 分布式:将应用分开部署(比如多台物理机),通过远程调用协同工作。
  4. 集群:一个应用/模块/功能部署多份(如:多台物理机),通过负载均衡共同提供对外访问。
  5. 缓存:将数据放在距离应用或用户最近的位置,加快访问速度。
  6. 异步:将同步的操作异步化。客户端发出请求,不等待服务端响应,等服务端处理完毕后,使用通知或轮询的方式告知请求方。一般指:请求——响应——通知 模式。
  7. 冗余:增加副本,提高可用性,安全性,性能。
  8. 安全:对已知问题有有效的解决方案,对未知/潜在问题建立发现和防御机制。
  9. 自动化:将重复的,不需要人工参与的事情,通过工具的方式,使用机器完成。
  10. 敏捷性:积极接受需求变更,快速响应业务发展需求。

获取更多编程干货,欢迎大家关注我的头条号~

相关推荐