【软考——系统架构师】Nosql数据库_服务器


🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励

欢迎各位🔎点赞👍评论收藏⭐️

文章目录

  • 关系型数据库的缺点
  • ACID理论
  • Nosql数据库
  • CAP理论
  • BASE理论
  • Nosql数据库与sql数据库的比较
  • Nosql的主要类型
  • 键值(key-Value)数据库
  • 列族数据库
  • HBase
  • 文档数据库
  • 图形数据库
  • 送书福利

关系型数据库的缺点

  • 不满足高并发读写需求 : 网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
  • 不满足海量数据的高效率读写: 网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。
  • 不满足高扩展性和可用性: 在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

集群方式虽然可以缓解上述问题,但仍然存在下列缺陷:

  1. 复杂性–集群配置、部署、管理都和复杂。
  2. 延迟性–主数据库压力较大时,会产生较大延迟。主备切换时候可能需要人工参与。
  3. 扩容性–集群中增加新机器时,对整个数据集重新分区,非常复杂。

ACID理论

ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性

【软考——系统架构师】Nosql数据库_nosql_02

Nosql数据库

【软考——系统架构师】Nosql数据库_nosql_03


NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来

的挑战,尤其是大数据应用难题。

【软考——系统架构师】Nosql数据库_服务器_04

CAP理论

主要概念

解释

C(Consistency)一致性

一致性是指更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,与ACID的C完全不同。

A(Availability)可用性

可用性是指服务一直可用,而且是正常响应时间。

P(Partition tolerance)分区容错性

分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

鱼与熊掌不可兼得。一个分布式系统不可能同时满足一致性、可用性、分区容忍性这三个需求,最多只能同时满足其中两个。

BASE理论

我们理想中的情况:

【软考——系统架构师】Nosql数据库_数据_05


实际中的情况:

【软考——系统架构师】Nosql数据库_sql数据库_06

CA

优先保证一致性和可用性,放弃分区容错。缺点:不再是分布式系统

CP

优先保证一致性和分区容错性,放弃可用性。缺点:牺牲用户体验

AP

优先保证可用性和分区容错性,放弃一致性。缺点:全局数据的不一致性

基本可用

软状态

最终一致性

指分布式系统在出现不可预知故障的时候,允许损失部分可用性。允许分区失败的情形出现。

硬状态数据库状态必须一直保持数据库一致性。软状态状态可以有一段时间不同步

系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。

Nosql数据库与sql数据库的比较

特征

SQL数据库

Nosql数据库

数据类型

结构化

非结构

数据一致性

强一致性

弱一致

事务

高事务性

弱事务性

扩展性

一般


数据容量

有限数据

海量数据

标准化



技术支持



可维护性

复杂

复杂

Nosql的主要类型

【软考——系统架构师】Nosql数据库_nosql_07

键值(key-Value)数据库

【软考——系统架构师】Nosql数据库_数据_08


【软考——系统架构师】Nosql数据库_sql数据库_09

列族数据库

  • SQL模式
  • 行式存储
  • 列式存储

HBase

【软考——系统架构师】Nosql数据库_nosql_10

文档数据库

【软考——系统架构师】Nosql数据库_数据库_11


【软考——系统架构师】Nosql数据库_sql数据库_12

图形数据库

【软考——系统架构师】Nosql数据库_sql数据库_13

送书福利

内容介绍:
本书精选Kubernetes的硬核知识,帮助读者快速进阶和积累Kubernetes实战经验。本书共8章,主要包括认识Kubernetes,快速构建Kubernetes集群,Kubernetes核心对象使用,Kubernetes容器编排实践,Kubernetes系统运维与故障处理,构建Kubernetes高可用集群,Kubernetes监控与告警(Prometheus+Grafana)和基于Kubernetes的CI/CD项目综合实践(GitLab+ Harbor+Jenkins)。
本书前三章可以帮助读者快速掌握Kubernetes核心知识和高频操作;第4、第5章帮助读者快速掌握Kubernetes的进阶使用;第6~8章是Kubernetes及其外围系统的综合应用,帮助读者快速积累实战经验。
本书既可以作为云原生及相关行业从业者的技术参考书,也可以作为高等院校计算机、云计算和大数据相关专业的教材。

【软考——系统架构师】Nosql数据库_nosql_14


本书由机械工业出版社提供