分布式系统的理解以及需要掌握的知识
一.什么是分布式系统
简单理解:就是一个系统拆分为多个子系统并分别部署到不同的服务器上从而一致组合起来对外提供服务的系统(这个需要和集群分开,集群只是分布式部署)
专业解释:多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的“目标或者任务”;
其实这些理论说多了也不一定能理解,还是看看淘宝架构的14次演变吧,看完你就基本理解分布式概念了,懒得去copy,凑合着看下面这个链接吧,个人感觉讲得很到位
链接如下:https://segmentfault.com/a/1190000018626163
二,分布式系统需要知道那些点是必须搞清楚的,请看下面目录,你知道多少?感觉这个目录整理的还行,借来一用
1 分布式架构和部署
1.1 如何进行分布式部署
1.2 系统拆分后,模块之间如何相互调用
1.3 如何进行统一的会话(Session)管理
1.4 如何实现单点登录
1.5 如何保证一致性更新
1.6 如何规划和处理分布式事务
1.7 如何对重要服务实现HA
2 高并发和Web层的性能优化
2.1 高并发的处理
2.2 Nginx的优化,Varnish的配置和优化
2.3 Web层的缓存和静态化
2.4 Web层的性能优化,基本原理、各种优化的手段
2.5 Tomcat集群和MSM
2.6如何处理动态、实时内容
3 逻辑层处理和性能优化
3.1 Redis快速上手
3.2 缓存规划和Memcashed集群(使用magent)
3.3 异步规划和集群,以及优化
3.4 纯内存操作,应对复杂业务逻辑,比如:库存的查询和修改
3.5 如何处理高并发的业务
4 数据层处理和性能优化
4.1 大数据量的处理
4.2 MySQL的分区
4.3 如何分库
4.4 如何分表
4.5 应用MySQL Fabric
5 数据库优化(这个内容太多了,会专门开设另外的课程来讲)
5.1 MySQL的主从集群和读写分离
5.2 Galera for MySQL的集群
5.3 MySQL的HA和负载均衡
5.4 SQL优化的方法
5.5 MySQL常见的优化配置
5.6 NoSQL的应用
后续会继续跟进分布式,并会慢慢把上面那些问题的场景和答案给贴出来,让大家和我一起共同进步,现在出去找工作说不会分布式基本都会被out的