IT基础知识——数据库
Kubernetes(简称K8s):是一个开源的容器管理和自动化部署平台,作为一个强大的容器编排系统,使得部署、管理和扩展应用程序变得高效且自动化。
Kubernetes的核心功能包括服务发现、负载均衡、自动化部署、滚动更新、自动拓展等。
Kubernetes集群调度机制 核心概念与联系 Pod Pod是一个包含一个或多个容器的最小部署单位。Pod内的容器共享资源和网络namespace,可以通过本地Unix域套接字进行通信。 Node Node是Kubernetes集群中的一个物理或虚拟机器,用于运行Pod,每个Node上运行的Pod都是独立的,可以在集群中任意节点上运行。 Controller 负责监控集群中的资源状态并自动调整资源分配,以实现预定义的目标。 Scheduler 负责在集群中的Node上分配Pod,根据Pod的资源需求、节点的资源状态以及其他约束条件,自动选择一个合适的Node来运行Pod。 Kubelet 运行在每个Node上,负责将Pod调度到Node上,并监控Pod状态,如果Pod失败,Kubelet会根据ReplicationController的设置重新启动Pod。 套接字socket:对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。完成两个应用程序之间的数据传输。一个套接字就是网络上进行通信的一端,提供了应用层进程利用网络协议进行交换数据的机制。套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。
Pod调度是Kubernetes架构中最为关键的部分之一,决定着容器化应用的运行效率、资源利用率以及系统的整体稳定性。在Kubernetes集群中,Pod是最小的部署单位,代表着一个或多个容器的集合。Pod的调度,即决定这些Pod在集群中的哪个节点上运行,是一个复杂且富有挑战的过程。
参考:https://developer.aliyun.com/article/1424776
数据库管理系统DBMS
ACID:指数据库管理系统在写入或更新资料的时候,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,不可分割性),一致性(consistency),隔离性(isolation,独立性),持久性(durability)。
A原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复到事务开始前的状态,就像这个事务从来没有执行过一样。
C一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
I隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交、读提交、可重复读和串行化。
D持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
一个事务:由一系列数据库操作组成的一个完整的逻辑过程。
分片Sharding:通过多台机器分配数据的方法。MongoDB使用分片支持大数据集和高吞吐量的操作
数据库 类型 存储方式/位置 特点 缺点 应用场景 MySQL RDBMS关系型数据库,集中式数据库架构 表格,数据以行和列的方式进行存储;数据存储在磁盘上 易用性、灵活性、高可用性(主从复制、读写分离、自动故障转移) 在处理非结构化数据时性能相对较低 应用于各种Web应用程序 GaussDB 华为云推出的分布式数据库架构 分布式键值存储系统ETCD 高性能、高可用性、可扩展性、容灾能力(主备切换、自动故障恢复和数据备份) 用于需要处理大规模数据和支持高并发的应用场景 Redis NoSQL键值存储数据库 数据存储在内存中,键值对 高性能:读写速度快、提供丰富的数据结构 持久性相对较差,不适合复杂查询 高并发、低延迟的场景 MongoDB NoSQL文档型数据库,内存数据库 数据存储在磁盘上 支持非结构化和动态的数据模型,适合处理不断变化的数据 不支持ACID事务 适用于需要处理大量非结构化数据的场景