后台架构窥视(图)
很赞同作者对于软件架构的思考和总结:
- 架构不可盲目的使用,结合业务和场景来解决问题才是架构存在的理由
- 业务成就了技术,而不是技术成就业务,对业务深入的思考,对技术细节和深度的掌握是相辅相成
- 技术是用来解决业务问题,而业务问题,也可以通过业务来解决
- 互联网是一种精神,开放、*、分享
具体窥视的内容,参考一下:
层级
演进之路
分布式部署
分布式架构和部署
- 如何进行分布式部署
- 系统拆分后,模块之间如何相互调用
- 如何进行统一的会话(Session)管理
- 如何实现单点登录
- 如何保证一致性更新
- 如何规划和处理分布式事务
- 如何对重要服务实现HA
高并发和Web层的性能优化
- 高并发的处理
- Nginx的优化,Varnish的配置和优化
- Web层的缓存和静态化
- Web层的性能优化,基本原理、各种优化的手段
- Tomcat集群和MSM
- 如何处理动态、实时内容
逻辑层处理和性能优化
- Redis快速上手
- 缓存规划和Memcashed集群(使用magent)
- 异步规划和集群,以及优化
- 纯内存操作,应对复杂业务逻辑,比如:库存的查询和修改
- 如何处理高并发的业务
数据层处理和性能优化
- 大数据量的处理
- MySQL的分区
- 如何分库
- 如何分表
- 应用MySQL Fabric
数据库优化
- MySQL的主从集群和读写分离
- Galera for MySQL的集群
- MySQL的HA和负载均衡
- SQL优化的方法
- MySQL常见的优化配置
- NoSQL的应用
什么是分布式系统
通俗点说:就是能把系统进行拆分并部署到多台服务器上的系统。(注意区分分层和集群)
专业点说:分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由网络互联的多处理机体系结构上执行任务的系统。常见的有:分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统、分布式数据库系统、分布式应用系统等。
为何需要分布式
- 单台服务器已经无法承受访问压力
- 大数据处理
- 高并发访问
- 高可用性,自动容错
- 并行、高性能应用
分布式系统的优点
- 面对高并发、大数据量的处理要求
- 高可扩展性(可伸缩)
- 高性能
- 异构:操作系统、硬件、程序语言等
- 同步、异步操作混杂
- 安全性:授权认证、SSO单点登录、Oauth等
- 透明性,如:访问透明、位置透明、并发透明、故障透明、伸缩透明等
分布式系统的缺点
- 相互调用不便
- 网络通信的可靠性
- 网络传输数据的安全问题
- 系统开发更复杂
- 测试困难
本文参照
- 大型网站技术架构 核心原理与案例分析 (作者李智慧)
- 分布式部署