架构师训练营(第四周)
作业
存储
MySQL
关系型数据库存储
支持事务,一致性强
有不同的隔离级别
MongoDB
文档数据库
适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性。
非常适合文档化格式的存储及查询。
高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
对性能的关注超过对功能的要求。
HBase
存储容量大,一个表可以容纳上亿行,上百万列;
可通过版本进行检索,能搜到所需的历史版本数据;
负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);
可有效避免单点故障的发生。
搜索
Elasticseach
分布式的搜索引擎和数据分析引擎
全文检索,结构化检索,数据分析
对海量数据进行近实时的处理
缓存
Redis
读写性能优异
持久化
数据类型丰富
单线程
数据自动过期
发布订阅
分布式
队列
RabbitMQ
异步处理
应用解耦
流量削峰
服务器
Openresty
用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
对于服务经行正向或反向代理
LVS
更加强大的代理和负载均衡功能
容器
Docker
利用容器化技术,实现高效的 ci/cd
确保环境的一致性、
Kubernetes
实现服务的自动扩缩容、监控、报警及服务资源的调度
分布式协同
ZooKeeper
数据发布/订阅
负载均衡
命名服务
分布式协调/通知
集群管理
Master 选举
分布式锁
分布式队列
总结
互联网系统面临的挑战
高并发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展
应对高并发挑战的两个技术方向
垂直伸缩
水平伸缩
互联网架构演化
应用数据分离
使用缓存改善系统性能
应用服务器集群改善系统的并发处理能力
数据库读写分离
反向代理和 CDN 加速网站响应
使用分布式文件系统和分布式数据库系统
使用 nosql 和搜索引擎
业务拆分
服务化及中台化
评论