集群中java应用程序的数据库

时间:2018-04-12 12:10:49

标签: database design-patterns database-design architecture cluster-computing

我想和kubernetes一起玩,我可以开始一个简单的应用程序,但现在我想设计更复杂的东西。不过我无法弄清楚,如何处理这种架构中的数据库访问。

假设我有一些简单的聊天应用程序的100个pod复制品。他们都需要访问相同的数据库(或更像数据集)并对它们执行CRUD操作。如何设计它以保持数据一致并消除死锁风险?

如果可能的话,我想使用SQL - 就像数据库一样,所以我可以轻松地使用hibernate和我熟悉的其他工具。

这是可能的还是我必须使用完全不同的方法?我正在寻找的技术或架构的名称是什么?

1 个答案:

答案 0 :(得分:1)

1)您可以使用连接池来减少此数量,并使连接设置更具侵略性/弹性;

2)以这种方式拆分微服务,访问持久性是一种微服务,将CRUD服务暴露给你的持久性(mysql / rdms / nosql / etc)。通过这种方式,您很可能不需要数百个pod的副本。

3)死锁/锁定策略 - 正如Andrew在评论中提到的,它与您的软件开发架构而不是K8本身更相关。有很多方法可以用优点/缺点来解决这个问题。