容器有着一个非常重要的作用就是包管代码运行情况的一致性。容器通过为应用程序打包和部署提供轻量级、不可变的基础结构来解决应用程序移动到其他情况就无法正常运行的题目,将应用程序或服务、其依赖项及其配置打包为容器映像。容器技术为开发职员和 IT 专业职员只需做出少量修改,甚至不需要进行任何修改,即可跨情况部署应用程序,使用非常方便。
数据库恰当容器化吗?
MySQL 属于关系型数据库,对IO要求较高。当一台物理机跑多个时,IO就会累加,导致IO瓶颈,大大低落 MySQL 的读写性能。数据库的性能瓶颈一般出现在IO上面,如果按 Docker 的思绪,那么多个docker最终IO哀求又会出现在存储上面。现在互联网的数据库多是share nothing的架构,可能这也是不思量迁徙到 Docker 的一个因素吧。
3.资源隔离
资源隔离方面,Docker 确实不如假造机KVM,Docker是使用Cgroup实现资源限制的,只能限制资源斲丧的最大值,而不能隔绝其他程序占用自己的资源。如果其他应用过渡占用物理机资源,将会影响容器里 MySQL 的读写服从。需要的隔离级别越多,得到的资源开销就越多。相比专用情况而言,容易水平伸缩是Docker的一大优势。然而在 Docker 中水平伸缩只能用于无状态计算服务,数据库并不适用。我们没有看到任何针对数据库的隔离功能,那为什么我们应该把它放在容器中呢?
先容了这么多云原生数据库的好处,也叙述了一些云原生相关的先辈技术,光有理论知识是完全不够的,我们也需要付出实践。云原生数据库的选择,我的建议是原则亚马逊云原生数据库,亚马逊作为领先企业,在云方面具有很大的优势,接下来就让我们具体的相识和学习一下。
亚马逊云原生数据库
第六种是图数据库,图数据库是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理系统。图数据库属于非关系型数据库。图数据库对数据的存储、查询以及数据结构都和关系型数据库有很大的不同。图数据结构直接存储了节点之间的依赖关系,而关系型数据库和其他范例的非关系型数据库则以非直接的方式来表现数据之间的关系。图数据库把数据间的关联作为数据的一部门进行存储,关联上可添加标签、方向以及属性,而其他数据库针对关系的查询必须在运行时进行具体化操纵,这也是图数据库在关系查询上相比其他范例数据库有巨大性能优势的原因。
Time series