架构师训练营第四周学习总结
1. 回顾解答
1.工厂模式避免if-else、switch,可以使用配置(配置文件、Map)代替
2.rest api url问题?策略模式;不同类型文档处理?模板方法模式
2. 第一节课
1.互连网架构挑战:
1).高并发,大流量
2).高可用
3).海量数据
4).用户分布广泛,网络情况复杂
5).安全环境恶劣
6).需求快速发者,发布频繁
7).渐进式发展
2.应对高并发挑战的两个技术方向
1).垂直伸缩:提高硬件性能,最简单的一种方式,无需软件架构改变;SHUIP
2).水平伸缩:增加服务器数量
3.互联网架构演化
1).引用程序-文件-数据库
2).文件->文件服务器
3).缓存:+本地缓存、+分布式缓存
4).应用服务器->应用服务器集群
5).数据库->数据库读写分离
6).+CDN服务器、+反向代理服务器
7).文件服务器->分布式文件服务器;读写数据库->分布式数据库服务器
8).+搜索引擎服务器、+NOSQL服务器
9).应用服务器->业务拆分
10).+微服务、+中台化
4.互联网架构模式
分层
分割
分布式
集群
缓存
异步:低耦合;提高性能
冗余:高可用
自动化
安全
3. 第二节课
架构核心要素
高性能、高可用、可伸缩(服务器)、可扩展(功能)、安全
互联网架构技术一览
https://xie.infoq.cn/article/5888ddc138122e7d0cb852bd6
维基百科技术架构
使用的技术栈:
GeoDNS: 基于地理位置的域名解析服务,可将域名解析到离用户最近的服务器
LVS 负载均衡
Squid 反向代理;缓存服务
ImageServer 图片服务器
PHP 应用程序
Memcached 分布式缓存
MySQL
Lucene 搜索服务
external storage
invalidation notification 失效通知
淘宝技术架构优化
LAMP+MySQL读写分离
MySQl->Oracle;SQL Replay中间件;
php->java;webx;AntX;ISearch
jboss;分库;Spring;ESI;CDN;类目属性体系
分布式 缓存、存储、搜索
业务拆分
宅米网技术变迁
1.0->2.0:(七牛云)图片云服务(CDN);redis集群;(阿里云)数据库主从复制;大数据平台(绩效考核);分布式消息队列
2.0->3.0: 可复用微服务集群;MongoDB迁移历史订单;大数据平台:(针对卖家的商品推荐
技术架构:按照技术栈分组(后端、Web、App)->按照业务线分组(买家、卖家、后台组)->+架构运维部门、+数据平台部门、+项目管理部门
新浪微博架构变迁
1.0: LAMP、MySQL、MPSS
2.0: 拆分;投递模式;异步;
3.0: CDN;拆分;API网关等等
4. 总结
选择合适的架构,而不是酷炫的架构
要注意提高发现问题的能力;发现问题、分析问题、解决问题
根据业务需要,选择合适的解决方案
评论