关系型数据就是否适合容器化部署及存在的问题?

我们公司目前目前构建了了一台spring cloud的的微服务微服务开发平台,数据库oracle还得还是是部署部署在虚机上年上面,考虑到到容器适合无状态化部署部署和数据安全性、网络网络方面问题问题,不知道现在现在解决解决的的怎么样或是或是有更好的解决方案,也请各位专家指导指导...显示全部

我们公司目前目前构建了了一台spring cloud的的微服务微服务开发平台,数据库oracle还得还是是部署部署在虚机上年上面,考虑到到容器适合无状态化部署部署和数据安全性、网络网络方面问题问题,不知道现在现在解决解决的的怎么样或是或是有更好的解决方案,也请各位专家指导指导。

收起
参与5

返回lzj7618937的回答

lzj7618937lzj7618937质控经理cib

建议从以下几方面去考虑:

  • 1、数据安全问题,例如 容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对物理机硬件损伤也比较大。
  • 2、性能问题, 关系型数据库,对IO要求较高。当一台物理机跑多个时,IO就会累加,导致IO瓶颈,大大降低 读写性能。
  • 3、网络问题, 要理解 Docker 网络,您必须对网络虚拟化有深入的了解。也必须准备应付好意外情况。你可能需要在没有支持或没有额外工具的情况下,进行 bug 修复。
  • 4、状态, 在 Docker 中打包无状态服务是很酷的,可以实现编排容器并解决单点故障问题。但是数据库呢?将数据库放在同一个环境中,它将会是有状态的,并使系统故障的范围更大。下次您的应用程序实例或应用程序崩溃,可能会影响数据库。
  • 5、资源隔离, 资源隔离方面,Docker 确实不如虚拟机KVM,Docker是利用Cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。
  • 6、运行数据库的环境需求,常看到 DBMS 容器和其他服务运行在同一主机上。然而这些服务对硬件要求是非常不同的。数据库(特别是关系型数据库)对 IO 的要求较高。一般数据库引擎为了避免并发资源竞争而使用专用环境。如果将你的数据库放在容器中,那么将浪费你的项目的资源。因为你需要为该实例配置大量额外的资源。在公有云,当你需要 34G 内存时,你启动的实例却必须开 64G 内存。在实践中,这些资源并未完全使用。
银行 · 2020-12-31
浏览955

回答者

lzj7618937
质控经理cib
擅长领域: 云计算容器容器云

lzj7618937 最近回答过的问题

回答状态

  • 发布时间:2020-12-31
  • 关注会员:2 人
  • 回答浏览:955
  • X社区推广