Nacos
一个更易于构建云原生应用的动态服务发现、配置管理、服务管理的平台
特点
- 动态配置服务
- 服务发现与管理
- 动态DNS服务
服务注册与发现比较
CAP 理论
CAP 理论是针对分布式数据库而言的,它是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得
consistency 一致性
更新操作成功后,所有节点在同一时间的数据完全一致
一致性可以分为客户端和服务端两个不同的视角:
- 从客户端角度来看,一致性主要指多个用户并发访问时更新的数据如何被其他用户获取的问题;
- 从服务端来看,一致性则是用户进行数据更新时如何将数据复制到整个系统,以保证数据的一致。
Availability 可用性
用户访问数据时,系统是否能在正常响应时间返回结果
partition tolerance 分区容错性
分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务
CAP 理论认为分布式系统只能兼顾其中的两个特性,即出现 CA、CP、AP 三种情况
- CA without P
如果不要求 Partition Tolerance,即不允许分区,则强一致性和可用性是可以保证的。其实分区是始终存在的问题,因此 CA 的分布式系统更多的是允许分区后各子系统依然保持 CA。 - CP without A
如果不要求可用性,相当于每个请求都需要在各服务器之间强一致,而分区容错性会导致同步时间无限延长,如此 CP 也是可以保证的。很多传统的数据库分布式事务都属于这种模式。 - AP without C
如果要可用性高并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了实现高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。
ACID原则
关系型数据库支持事务的 ACID 原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
- 原子性(A)
一个事务的所有系列操作步骤被看成一个动作,所有的步骤要么全部完成,要么一个也不会完成。如果在事务过程中发生错误,则会回滚到事务开始前的状态,将要被改变的数据库记录不会被改变。 - 一致性(C)
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏,即数据库事务不能破坏关系数据的完整性及业务逻辑上的一致性。 - 隔离性(I)
主要用于实现并发控制,隔离能够确保并发执行的事务按顺序一个接一个地执行。通过隔离,一个未完成事务不会影响另外一个未完成事务。
一旦一个事务被提交,它应该持久保存,不会因为与其他操作冲突而取消这个事务。
gogogo