一:分布式架构和部署
1:如何进行分布式部署
2:系统拆分后,模块之间如何相互调用
3:如何进行统一的会话(Session) 管理
4:如何实现单点登录
5:如何保证一致性更新
6:如何规划和处理分布式事务
7:如何对重要服务实现 HA
二:高并发和 Web 层的性能优化
1:高并发的处理
2:Nginx 的优化,Varnish 的配置和优化
3:Web 层的缓存和静态化
4:Web 层的性能优化,基本原理、各种优化的手段
5:Tomcat 集群和 MSM
6:如何处理动态、实时内容
三:逻辑层处理和性能优化
1:Redis 快速上手
2:缓存规划和 Memcashed 集群(使用 magent)
3:异步规划和集群,以及优化
4:纯内存操作,应对复杂业务逻辑,比如:库存的查询和修改
5:如何处理高并发的业务
四:数据层处理和性能优化
1:大数据量的处理
2:MySQL 的分区
3:如何分库
4:如何分表
5:应用 MySQL Fabric
五:数据库优化(这个内容太多了,会专门开设另外的课程来讲)
1:MySQL 的主从集群和读写分离
2:Galera for MySQL 的集群
3:MySQL 的 HA 和负载均衡
4:SQL 优化的方法
5:MySQL 常见的优化配置
6:NoSQL 的应用
1. 什么是分布式系统
通俗点说:就是能把系统进行 拆分 并部署到 多台服务器上 的系统。(注意区分分层和集群)
专业点说:分布式软件系统 (Distributed Software Systems) 是支持分布式处理的软件系统,是在由网络互联的多处理机体系结构上执行任务的系统。常见的有:分布式操作系统、分布式程序设计语言及其编译 (解释) 系统、分布式文件系统、分布式数据库系统、分布式应用系统等。
2. 为何需要分布式
单台服务器已经无法承受访问压力
大数据处理
高并发访问
高可用性,自动容错
并行、高性能应用
……
3. 分布式系统的特点
1): 面对高并发、大数据量的处理要求
2): 高可扩展性(可伸缩)
3): 高性能
4): 异构:操作系统、硬件、程序语言等
5): 同步、异步操作混杂
6): 安全性:授权认证、SSO 单点登录、Oauth 等
7): 透明性,如:访问透明、位置透明、并发透明、故障透明、伸缩透明等
4. 分布式系统的缺点
1): 相互调用不便
2): 网络通信的可靠性
3): 网络传输数据的安全问题
4): 系统开发更复杂
5): 测试困难
5.什么是分布式部署
简单点说:就是把程序或数据,分散部署到 多台物理服务器 上,但他们组 合起来,形成一个整体对外提供服务。
6. 分布式架构部署的演变
1. 1 台服务器的最简部署
比如我们在自己的电脑上跑一个项目!web 服务器和数据库服务器都是在同一台物理机器上!
2.分离 Web 服务器和数据库服务器
3.水平增加 Web 服务器,加入 Varnish(请求很多,一台 web 服务器不够了)
在一台服务器上起多台 web 服务器,或者增加硬件
4.加入分布式的文件系统
系统有大量的图片,文件等
5.加入缓存服务(有大量的读取数据库中数据的情况)
6.MySql 数据库的主从集群、读写分离
7.继续水平增加 Web 服务器,加入 Nginx
8.按业务进行缓存分离,缓存集群
9. 加入消息系统,进行异步处理
10.对重要的节点进行 HA 集群,或者是双机热备,以保障可用性
分布式部署给开发带来的问题
分布式部署会带来很多问题,有很多在开发期间就要考虑到,比如:
1:各个拆分开的模块间如何相互调用
2:单点登录
3:会话的统一管理
4:一致性更新
5:分布式事务
6:关键服务的可用性保障
原文链接:https://www.cnblogs.com/tyadmin/p/11062899.html