Eu gostaria de brincar com kubernetes
, Eu sou capaz de iniciar um aplicativo simples, mas agora eu gostaria de projetar algo mais complexo. No entanto, eu não consigo descobrir como lidar com o acesso ao banco de dados em tal arquitetura.
Vamos dizer que eu tenho 100 réplicas pod de algum aplicativo de chat simples. Todos eles precisam acessar o mesmo banco de dados (ou mais como o conjunto de dados) e executar CRUD
operações sobre eles. Como projetar para manter os dados consistentes e eliminar o risco de deadlocks?
Se possível, eu gostaria de usar SQL
como banco de dados, para que eu possa usar confortavelmente hibernate
e outras ferramentas que eu conheço.
Isso é possível ou eu tenho que usar uma abordagem totalmente diferente? Qual é o nome da tecnologia ou arquitetura que estou procurando?
Respostas:
1 para resposta № 11) Você pode usar um pool de conexão para reduzir esse número e tornar as configurações de conexão mais agressivas / elásticas;
2) Divida seus microsserviços de tal maneiraO acesso à persistência é um microsserviço que expõe seu serviço CRUD à sua persistência (mysql / rdms / nosql / etc). Dessa forma, você provavelmente não precisa de centenas de réplicas de seus pods.
3) Deadlocks / estratégias de bloqueio - como Andrewmencionado nos comentários, é mais relacionado à sua arquitetura de desenvolvimento de software do que ao próprio K8s. Há muitas maneiras de lidar com isso com os prós / contras.