For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,学习软件编程开发技术的人也越来越多了,而本文我们就简单来了解一下,分布式数据存储应用都有哪些注意事项。
数据的分布式存储具体表现形式也就是分布式数据库,分布式数据库不同于分布式应用服务,不存在开发测试阶段费劲的发布重启,所以并不影响敏捷性;另外数据调用都集中在一个访问代理上,因此不需要像分布式应用服务那么反人性的考虑接口管理,分布式数据库的水平伸缩力,恰恰解决了微服务必须分库的尴尬问题,可以让程序员专注于数据访问的业务问题上。既然这么多好处,为什么不能大规模应用呢?问题的根源就出在事务上了!
为什么关系型数据库就具备ACID的事务的优势呢?先简单点说说事务的原理,事务就是对数据的加锁解锁,给数据行集加锁,我(事务)要处理一行数据,我(事务)就申请一把钥匙,给数据行上个锁,其他人(事务)等着我解锁了,其他人才能访问。这个操作放到以单机设计为主的关系型数据库上好解决,但是放到如今的分布式数据库环境,这就特别麻烦了,因为数据被分成片,分布在不同的机器节点库中,事务加锁就要定位到所有相关的节点,事务问题就淋漓尽致地体现出了分布式系统在网络环境中多节点协作的复杂性,协作越紧密的事情,分布式系统干起来越吃力,为什么Key/Value数据库,例如Redis用起来舒服,也很流行,就是数据相互之间没什么协作关系。
分布式数据库事务这个够呛的问题,也没有难住伟大的计算机科学家们,例如:TIDB继承自GooglePercolator,使用Percolator事务模型,实现了分布式事务。也就是现在又出现的一个新名词:NewSQL,传统关系型数据库ACID特性+NoSQL。
我们先说说分布式数据库的关键是什么?就是对一大块数据进行分片(分块/分区),平平整整地放到不同的物理节点上,保持每个节点的数据量差不多是佳的,这样吞吐性能好,若节点有的多,有的少,这就是出现倾斜了,那么数据多的节点就会承载更大的数据访问压力。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。