Como balancear uma aplicação de banco de dados micro serviço de inicialização primavera

yusufnazir:

Tenho vindo a fazer pesquisa sobre micro serviços. Tenho de inicialização primavera utilizado ver como é simples para começar. Durante minha pesquisa eu li que é uma boa abordagem que cada micro serviço, ou seja os que fazem o acesso aos dados a partir de um banco de dados, tem seu próprio banco de dados. Estou curioso como isso funciona quando se inicia várias instâncias desse mesmo micro serviço. Podem essas instâncias do mesmo serviço trabalho micro com apenas um banco de dados ou eles também precisam de um banco de dados separado? O dilema para mim é os dados seria diferente em vários bancos de dados. Como é que o balanceamento de carga micro serviços de trabalho para tais situações?

editado após os primeiros 3 comentáriosEu aprecio os comentários. Sinto que faltava para explicar meus pensamentos por trás desta questão. Estou habituado a construção de aplicações monolíticas. I fez uso de Spring e Hibernate (hibernatedaosupport) e, ultimamente, também hibernam envers. Eu uso o gerenciamento de transações da primavera para gerir os commits e situação de reversão do banco de dados. Isso tem funcionado para mim até agora. Eu comecei a olhar para micro serviços e até agora sou incapaz de encontrar uma explicação adequada de como gerenciamento de transações primavera utilizada com hibernate e envers como um micro serviço iria trabalhar com um único banco de dados. Eu posso entender apenas um exemplo deste trabalho serviço de micro, mas estou curioso para saber se várias instâncias desse micro serviço iria funcionar corretamente com apenas um banco de dados. Especialmente considerando o fato de que hibernate seria armazenar em cache objetos de banco de dados por razões de desempenho,

Ernesto Campohermoso:

Não há nenhuma exigência sobre esse micro-serviço deve ter um banco de dados diferente, você poderia compartilhar um banco de dados em todos os seus micro-serviços ou ter um por micro-service. Depende de você e decisões de arquitetura tendo em conta as diferentes vantagens e desvantagens.

Se você decidir um banco de dados por micro-serviço e você tem muitas instâncias do mesmo micro-service. Você deve usar apenas um banco de dados (como com monólito). Sobre suas preocupações de Hibernate e Cache você deve lidar com o cache de forma diferente, por exemplo, usando Hazelcast ( https://hazelcast.com/use-cases/caching/hibernate-second-level-cache/ ) ou EhCache.

De qualquer forma os padrões de design são apenas as melhores práticas com diferentes vantagens e desvantagens, você deve entender as vantagens e desvantagens de cada modelo para depois tomar uma decisão.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=209835&siteId=1
Recomendado
Clasificación