《深入浅出分布式技术原理》笔记
开篇词 掌握好学习路径,分布式系统原来如此简单
导读:以前因后果为脉络,串起网状知识体系
分布式系统解决了什么问题
- 首先,分布式系统解决了单机性能瓶颈导致的成本问题。——水平扩展
- 然后,解决了用户量和数据量爆炸性地增大导致的成本问题。——水平扩展
- 接着,满足了业务高可用的要求。——解决单点问题,鸡蛋不要都放在一个篮子里
- 最后,分布式系统解决了大规模软件系统的迭代效率和成本的问题。——分而治之,化繁为简
HBase 是一种 NoSQL 数据库,它是Java版本的 Google’s Big Table 实现,它原本是 Hadoop 的子项目,现在已独立出来,并成为 apache 的顶级项目。
HBase 的设计目标是用于存储大规模数据集。HBase 是列式数据库,与传统行式数据库相比,其非常适合用于存储稀疏性的数据。
HBase 是基于 HDFS 实现的。
HBase 关键特性:
LSM 被广泛应用于很多以文件结构存储数据的数据库,如:HBase, Cassandra, LevelDB, SQLite。
LSM 的设计目标:通过顺序写来提高写操作吞吐量,替代传统的 B+ 树或 ISAM。
Spring Framework - 用于构建企业级应用的轻量级一站式解决方案
Spring Boot - 快速构建基于 Spring 的应用程序
Spring Cloud - 简化分布式系统的开发
略
略
数据分片
水平分片:按行进行数据分割,数据被切割为一个个数据组,分散到不同节点上。
垂直分片:按列进行数据切割,一个数据表的模式(Schema)被切割为多个小的模式。
数据同步
数据库同步用于帮助数据库恢复一致性。
分布式数据库发展就是一个由合到分,再到合的过程:
Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:
Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。
高昂的维护成本
时间性能“达不到”用户的期待
不同量级 TOP K 算法的解决方案不同:
小规模:Hash 即可
大规模:由于单机的处理量不足以处理全量数据,势必分而治之:分片统计,然后聚合(即先 map 后 reduce)
大数据技术,起源于 Google 在 2004 年前后发表的三篇论文:
“机器学习”分为 3 个模块