Design de aplicativos

Descoberta de serviço com aplicativo Java e banco de dados no Kubernetes

Este blog mostrará como um aplicativo Java simples pode se comunicar com um banco de dados usando a descoberta de serviços no Kubernetes.

 Kubernetes Logo WildFly Logo

Descoberta de serviço com aplicativo Java e banco de dados no DC/OS explica por que a descoberta de serviços é um aspecto importante para um aplicativo com vários contêineres. Esse blog também explicou como isso pode ser feito no DC/OS.

Vamos ver como isso pode ser feito no Kubernetes com uma única instância do servidor de aplicativos e do servidor de banco de dados. Este blog usará o WildFly como servidor de aplicativos e o Couchbase como banco de dados.

Este blog usará as seguintes etapas principais:

  • Iniciar o cluster de um nó do Kubernetes
  • Definição do aplicativo Kubernetes
  • Implantar o aplicativo
  • Acesse o aplicativo

Iniciar o cluster do Kubernetes

Minikube é a maneira mais fácil de iniciar um cluster Kubernetes de um nó em uma VM em seu laptop. O binário precisa ser baixado primeiro e depois instalado.

As instruções completas de instalação estão disponíveis em github.com/kubernetes/minikube.

O versão mais recente pode ser instalado no OSX da mesma forma:

Também requer kubectl a ser instalado. Instalação e configuração do kubectl fornecem instruções detalhadas sobre como configurar o kubectl. No OSX, ele pode ser instalado como:

Agora, inicie o cluster como:

O versão do kubectl mostra mais detalhes sobre o cliente kubectl e a versão do servidor minikube:

Mais detalhes sobre o cluster podem ser obtidos usando o comando kubectl cluster-info comando:

Definição do aplicativo Kubernetes

A definição do aplicativo é definida em github.com/arun-gupta/kubernetes-java-sample/blob/master/service-discovery.yml. Ele consiste em:

  • Um serviço Couchbase
  • Conjunto de réplicas do Couchbase com um único pod
  • Um conjunto de réplicas do WildFly com um único pod

A parte principal é onde o valor do COUCHBASE_URI é o nome do serviço do Couchbase. Isso permite que o aplicativo implantado no WildFly descubra dinamicamente o serviço e se comunique com o banco de dados.

arungupta/couchbase:travel A imagem do Docker é criada usando github.com/arun-gupta/couchbase-javaee/blob/master/couchbase/Dockerfile.

arungupta/wildfly-couchbase-javaee:travel A imagem do Docker é criada usando github.com/arun-gupta/couchbase-javaee/blob/master/Dockerfile.

O aplicativo Java EE espera que a inicialização do banco de dados seja concluída antes de começar a consultar o banco de dados. Isso pode ser visto em github.com/arun-gupta/couchbase-javaee/blob/master/src/main/java/org/couchbase/sample/javaee/Database.java#L25.

Implantar aplicativo

Esse aplicativo pode ser implantado como:

A lista de serviços e o conjunto de réplicas podem ser exibidos com o comando kubectl get svc,rs:

Os registros da réplica única do Couchbase podem ser obtidos com o comando kubectl registra rs/couchbase-rs:

Os registros do conjunto de réplicas do WildFly podem ser vistos usando o comando Registros do kubectl rs/wildfly-rs:

Aplicativo de acesso

O proxy kubectl inicia um proxy para o servidor da API do Kubernetes. Vamos iniciar um proxy do Kubernetes para acessar nosso aplicativo:

Exponha o conjunto de réplicas do WildFly como um serviço usando:

A lista de serviços pode ser vista novamente usando kubectl get svc comando:

Agora, o aplicativo pode ser acessado em:

Uma saída formatada tem a seguinte aparência:

Agora, novos pods podem ser adicionados como parte do serviço do Couchbase, dimensionando o conjunto de réplicas. Os pods existentes podem ser encerrados ou reprogramados. Mas o aplicativo Java EE continuará a acessar o serviço de banco de dados usando o nome lógico.

Este blog mostrou como um aplicativo Java simples pode se comunicar com um banco de dados usando a descoberta de serviços no Kubernetes.

Para obter mais informações, confira:

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Um comentário

  1. [...] Descoberta de serviço com aplicativo Java e banco de dados no Kubernetes [...]

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.