课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
事务是程序员在学习数据库编程开发技术的时候需要重点掌握的一个编程知识点,而今天我们就通过案例分析来了解一下,数据库事务基础知识都有哪些。
我们习惯于在任何需要的时候使用ACID事务。对于处理需求被保存在单个数据库服务器的大部分用户而言,这个模型很好。但是对于需要随着数据访问、存储性能和读写规模等需求的增长而扩充系统的用户而言,这种架构很快就会崩溃。对于这些用户,有两种方法来扩展数据存储:
垂直扩展:向单个服务器增加更强力的硬件,例如增强的CPU和RAM内存,或者移到一个大型计算机上。这通常很贵,而且当硬件再也不能升级时就会达到一个瓶颈。
水平扩展:添加更多服务器节点,所有东西都通过计算机网络连接。这通常是实际的实施方案。
在水平扩展中,一个数据存储拥有一个集群中的多个节点,事情就会变得有点儿复杂。由于数据驻留在物理隔离的服务器上,因此出现了一系列新的挑战。CAP定理解释了这一点,在分布式数据存储中以下属性只可以实现其中两点。
一致性:这涉及节点之间的数据一致性。数据会有一些副本,来在发生故障时提供冗余性并提高读取性能。这意味着,当一个数据在单个地方完成更新时,它应该在所有其它副本同步被更新,而不会给客户端带来任何延迟。这通常被称为具有线性化能力。如你所见,这与ACID中的一致性概念并不相同。
可用性:分布式数据存储是高度可用的,因此某个服务器实例的丢失不会妨碍整个数据存储的功能,用户仍将获得没有错误的请求响应。
分区容差:数据存储可以处理网络分区。网络分区是指网络中某些节点之间的通信中断。因此,某些节点可能无法与数据存储集群中的其它节点通信。在数据库集群的节点来看,这会将数据存储节点划分为多个本地网络。外部客户端仍然能够访问数据库集群中的所有节点。
根据这一点,不可能同时拥有一致性、可用性和分区容差。如果我们考虑可能发生的情况,我们就能直观地理解这种行为。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。