{"id":2903,"date":"2017-03-07T06:07:57","date_gmt":"2017-03-07T14:07:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2903"},"modified":"2023-06-19T03:30:27","modified_gmt":"2023-06-19T10:30:27","slug":"service-discovery-java-database-dcos","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/service-discovery-java-database-dcos\/","title":{"rendered":"Descoberta de servi\u00e7o com Java e aplicativo de banco de dados no DC\/OS"},"content":{"rendered":"<p>Este blog mostrar\u00e1 como um aplicativo Java simples pode se comunicar com um banco de dados ou <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/what-is-a-database-as-a-service-dbaas-why-is-it-important\/\">banco de dados como servi\u00e7o<\/a> (<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/cloud\/\">DBaaS<\/a>) usando a descoberta de servi\u00e7os no DC\/OS.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2913\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-1024x538-e1488894866397.png\" alt=\"DC\/OS logo\" width=\"711\" height=\"299\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-1024x538-e1488894866397.png 711w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-1024x538-e1488894866397-300x126.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-1024x538-e1488894866397-20x8.png 20w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/p>\n<h2>Por que o Service Discovery?<\/h2>\n<p>Um aplicativo geralmente consiste em v\u00e1rios componentes, como um servidor de aplicativos, um banco de dados, um servidor da Web, um servidor de cache e um servidor de mensagens. Normalmente, v\u00e1rias r\u00e9plicas de cada componente seriam executadas com base nas necessidades de seu aplicativo. A implanta\u00e7\u00e3o desse aplicativo usando uma estrutura de orquestra\u00e7\u00e3o de cont\u00eaineres significa que cada r\u00e9plica seria executada como um cont\u00eainer. Portanto, um aplicativo \u00e9 normalmente implantado como um aplicativo com v\u00e1rios cont\u00eaineres.<\/p>\n<p>Cada cont\u00eainer recebe um endere\u00e7o IP exclusivo durante sua vida \u00fatil. Mas os cont\u00eaineres s\u00e3o ef\u00eameros e podem ser encerrados e reprogramados em um host diferente pela estrutura de orquestra\u00e7\u00e3o. Nesse caso, um cont\u00eainer normalmente recebe um endere\u00e7o IP diferente. Isso significa que um aplicativo implantado no servidor de aplicativos n\u00e3o pode confiar no endere\u00e7o IP do banco de dados. \u00c9 nesse ponto que a descoberta de servi\u00e7os \u00e9 necess\u00e1ria.<\/p>\n<p>Portanto, v\u00e1rias r\u00e9plicas de um componente recebem um nome l\u00f3gico. Por exemplo, <code>web<\/code> para todos os cont\u00eaineres do servidor de aplicativos e <code>db<\/code> para todos os cont\u00eaineres de banco de dados. Agora, um aplicativo pode se comunicar com os cont\u00eaineres de banco de dados usando o nome do servi\u00e7o l\u00f3gico. Isso permite que os cont\u00eaineres de banco de dados sejam reprogramados em qualquer lugar do cluster e tamb\u00e9m sejam dimensionados dinamicamente para cima e para baixo.<\/p>\n<p>Vamos ver como isso pode ser feito no DC\/OS com uma \u00fanica inst\u00e2ncia do servidor de aplicativos e do servidor de banco de dados. Este blog usar\u00e1 o WildFly como servidor de aplicativos e o Couchbase como banco de dados.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-cluster-mesos-dcos\/\">Cluster do Couchbase no Mesos com DC\/OS<\/a> fornecem mais detalhes sobre como configurar um <a href=\"https:\/\/docs.couchbase.com\/home\/server.html\">Couchbase<\/a> no DC\/OS.<\/p>\n<p>Este blog usar\u00e1 as seguintes etapas principais:<\/p>\n<ul>\n<li>Configurar o cluster do DC\/OS<\/li>\n<li>Defini\u00e7\u00e3o do aplicativo Marathon<\/li>\n<li>Implantar o aplicativo<\/li>\n<\/ul>\n<p>O c\u00f3digo-fonte completo usado neste blog est\u00e1 em\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>.<\/p>\n<p>Muito obrigado a <a href=\"https:\/\/twitter.com\/unterstein\">@unterstein<\/a> por criar o plug-in Maven e me ajudar a entender o funcionamento interno do DC\/OS.<\/p>\n<h2>Configurar o cluster do DC\/OS<\/h2>\n<p>O cluster do DC\/OS pode ser facilmente criado usando o <a href=\"https:\/\/downloads.dcos.io\/dcos\/stable\/aws.html?_ga=1.207445715.1510362819.1478208859\">Modelo do CloudFormation<\/a>. Instru\u00e7\u00f5es detalhadas, incluindo requisitos do sistema, capturas de tela e configura\u00e7\u00e3o, est\u00e3o dispon\u00edveis em Installing DC\/OS on AWS.<\/p>\n<p>A sa\u00edda do CloudFormation tem a apar\u00eancia mostrada:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2904\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-cloudformation-output-1024x470.png\" alt=\"DC\/OS Cluster CloudFormation Output\" width=\"900\" height=\"413\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-1024x470.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-300x138.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-768x353.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-1536x706.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output-1320x606.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-cloudformation-output.png 1850w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Anote o valor mostrado para as teclas <code>DnsAddress<\/code> e <code>PublicSlaveDnsAddress<\/code>. O valor da primeira chave pode ser usado para acessar a GUI do DC\/OS e tem a seguinte apar\u00eancia:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2905\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-console-default-output-1024x624.png\" alt=\"DC\/OS Cluster Console Default Output\" width=\"900\" height=\"548\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-1024x624.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-300x183.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-768x468.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-1536x936.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output-1320x804.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-console-default-output.png 2048w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Configure a CLI do DC\/OS conforme explicado em CLI. Em resumo, s\u00e3o usados os seguintes comandos:<\/p>\n<ul>\n<li><code>dcos config set core.dcos_url https:\/\/${DnsAddress}<\/code> Substituir <code>${DnsAddress}<\/code> com o valor correspondente da sa\u00edda do CloudFormation.<\/li>\n<li><code>login do dcos auth<\/code><\/li>\n<li><code>dcos config show core.dcos_acs_token<\/code>. Se ainda n\u00e3o tiver feito isso, clone o reposit\u00f3rio de\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>. Criar um novo arquivo<code>.dcos-token<\/code>\u00a0e copie a sa\u00edda do comando para esse arquivo.<\/li>\n<li><code>dcos package install marathon-lb<\/code><\/li>\n<\/ul>\n<h2>Defini\u00e7\u00e3o do aplicativo Marathon<\/h2>\n<p>A estrutura Marathon \u00e9 usada para agendar cont\u00eaineres no DC\/OS. Um aplicativo de maratona pode ser definido fornecendo uma defini\u00e7\u00e3o de aplicativo.<\/p>\n<p>Conforme mencionado anteriormente, este blog mostrar\u00e1 como um aplicativo Java simples pode se comunicar com um banco de dados. Usaremos um aplicativo Java EE implantado no WildFly e usaremos o Couchbase como banco de dados. A defini\u00e7\u00e3o do aplicativo tem a seguinte apar\u00eancia:<\/p>\n<pre class=\"lang:default decode:true\">{  \r\n  \"id\":\"\/webapp\",\r\n  \"apps\":[  \r\n    {  \r\n      \"id\":\"database\",\r\n      \"cpus\":4,\r\n      \"mem\":4096,\r\n      \"instances\":1,\r\n      \"container\":{  \r\n        \"type\":\"DOCKER\",\r\n        \"docker\":{  \r\n          \"image\":\"arungupta\/couchbase:travel\",\r\n          \"network\":\"USER\"\r\n        }\r\n      },\r\n      \"ipAddress\":{  \r\n        \"networkName\":\"dcos\"\r\n      }\r\n    },\r\n    {  \r\n      \"id\":\"web\",\r\n      \"dependencies\":[  \r\n        \"\/webapp\/database\"\r\n      ],\r\n      \"cpus\":2,\r\n      \"mem\":4096,\r\n      \"instances\":1,\r\n      \"container\":{  \r\n        \"type\":\"DOCKER\",\r\n        \"docker\":{  \r\n          \"image\":\"arungupta\/wildfly-couchbase-javaee:travel\",\r\n          \"network\":\"USER\",\r\n          \"portMappings\":[  \r\n            {  \r\n              \"hostPort\":0,\r\n              \"containerPort\":8080,\r\n              \"protocol\":\"tcp\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      \"ipAddress\":{  \r\n        \"networkName\":\"dcos\"\r\n      },\r\n      \"env\":{  \r\n        \"COUCHBASE_URI\":\"database-webapp.marathon.containerip.dcos.thisdcos.directory\"\r\n      },\r\n      \"labels\":{  \r\n        \"HAPROXY_0_VHOST\":\"DCOS-PublicSlaveLo-DD2EGGFVCJA0-1604955948.us-west-1.elb.amazonaws.com\",\r\n        \"HAPROXY_GROUP\":\"external\"\r\n      }\r\n    }\r\n  ]\r\n}<\/pre>\n<p>Quais s\u00e3o os principais pontos dessa defini\u00e7\u00e3o de aplicativo?<\/p>\n<ul>\n<li>O aplicativo tem dois cont\u00eaineres: <code>banco de dados<\/code> e <code>web<\/code>. O cont\u00eainer da Web tem uma depend\u00eancia do cont\u00eainer do banco de dados definido usando <code>depend\u00eancias<\/code> atributo.<\/li>\n<li><code>banco de dados<\/code> usos de cont\u00eaineres <code>arungupta\/couchbase:travel<\/code>\u00a0Imagem do Docker. Essa imagem \u00e9 criada a partir de\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/tree\/master\/couchbase\">github.com\/arun-gupta\/couchbase-javaee\/tree\/master\/couchbase<\/a>. Ele usa a imagem de base do Couchbase e usa\u00a0<a href=\"https:\/\/docs.couchbase.com\/server\/7.0\/rest-api\/rest-endpoints-all.html\">API REST do Couchbase<\/a> para pr\u00e9-configurar o banco de dados. Um bucket de amostra tamb\u00e9m \u00e9 carregado no banco de dados.<\/li>\n<li><code>web<\/code> usos de cont\u00eaineres <code>arungupta\/wildfly-couchbase-javaee:travel<\/code> imagem. Essa imagem \u00e9 criada a partir de <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/Dockerfile\">github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/Dockerfile<\/a>. Este \u00e9 um aplicativo Java EE 7 empacotado no WildFly. O aplicativo usa <code>COUCHBASE_URI<\/code> como uma vari\u00e1vel de ambiente para se conectar ao banco de dados do Couchbase. O valor dessa vari\u00e1vel de ambiente \u00e9 configurado para usar a descoberta de servi\u00e7o DNS e \u00e9 derivado conforme explicado em Redes virtuais.<\/li>\n<\/ul>\n<p>Certifique-se de alterar o valor de <code>HAPROXY_0_VHOST<\/code> para corresponder ao valor de <code>${PublicSlaveDnsAddress}<\/code> da sa\u00edda do CloudFormation. O r\u00f3tulo <code>HAPROXY_0_VHOST<\/code> instrui o Marathon-LB a expor o cont\u00eainer do Docker, o servidor de aplicativos WildFly no nosso caso, no balanceador de carga externo com um host virtual. O <code>0<\/code> na chave do r\u00f3tulo corresponde ao \u00edndice do servicePort, come\u00e7ando em 0. Se voc\u00ea tivesse v\u00e1rias defini\u00e7\u00f5es de servicePort, voc\u00ea as iteraria como 0, 1, 2 e assim por diante. A implanta\u00e7\u00e3o de um aplicativo com balanceamento de carga interno e externo com o marathon-lb fornece mais detalhes sobre como configurar o marathon-lb.<\/p>\n<p>A descoberta de servi\u00e7o e o balanceamento de carga fornecem mais detalhes sobre a descoberta de servi\u00e7o e o balanceamento de carga no DC\/OS.<\/p>\n<h2>Implantar o aplicativo usando o Maven<\/h2>\n<p>O aplicativo pode ser implantado usando\u00a0<a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\">dcos-maven-plugin<\/a>.<\/p>\n<p>O plug-in tem a mesma apar\u00eancia:<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;plugin&gt;\r\n    &lt;groupId&gt;dcos&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;dcos-maven-plugin&lt;\/artifactId&gt;\r\n    &lt;version&gt;0.2&lt;\/version&gt;\r\n    &lt;configuration&gt;\r\n        &lt;dcosUrl&gt;https:\/\/DCOS-ElasticLoadBa-1TH4TXIU5P783-1163025470.us-west-1.elb.amazonaws.com\/&lt;\/dcosUrl&gt;\r\n        &lt;deployable&gt;group&lt;\/deployable&gt;\r\n        &lt;ignoreSslCertificate&gt;true&lt;\/ignoreSslCertificate&gt;\r\n    &lt;\/configuration&gt;\r\n    &lt;executions&gt;\r\n        &lt;execution&gt;\r\n            &lt;id&gt;dcos:deploy&lt;\/id&gt;\r\n            &lt;phase&gt;install&lt;\/phase&gt;\r\n            &lt;goals&gt;\r\n                &lt;goal&gt;deploy&lt;\/goal&gt;\r\n            &lt;\/goals&gt;\r\n        &lt;\/execution&gt;\r\n    &lt;\/executions&gt;\r\n&lt;\/plugin&gt;<\/pre>\n<p>Os principais pontos desse fragmento s\u00e3o:<\/p>\n<ul>\n<li>A vers\u00e3o do plug-in \u00e9 0.2. Isso indica que o plug-in ainda est\u00e1 nos est\u00e1gios iniciais de desenvolvimento.<\/li>\n<li><code>dcosUrl<\/code> \u00e9 o valor de <code>${DnsAddress}<\/code> da sa\u00edda do CloudFormation. Esse endere\u00e7o \u00e9 usado para a implementa\u00e7\u00e3o do aplicativo.<\/li>\n<li><code>&lt;deployable&gt;<\/code> permite diferentes tipos de implanta\u00e7\u00e3o - aplicativo, grupo ou pods. Esse elemento \u00e9 uma dica para o plug-in e provavelmente dever\u00e1 desaparecer em uma vers\u00e3o futura, \u00e0 medida que a API do Marathon se consolidar. Seguir <a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\/issues\/11\">#11<\/a> para obter mais detalhes.<\/li>\n<\/ul>\n<p>Outros detalhes e configura\u00e7\u00f5es sobre o plug-in est\u00e3o em <a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\">dcos-maven-plugin<\/a>.<\/p>\n<p>Implemente o aplicativo:<\/p>\n<pre class=\"lang:default decode:true\">mvn install<\/pre>\n<p>O seguinte resultado \u00e9 exibido:<\/p>\n<pre class=\"lang:default decode:true\">[INFO] --- dcos-maven-plugin:0.2:deploy (dcos:deploy) @ dcos-java-database ---\r\n[INFO] About to execute DC\/OS deploy\r\n[INFO] app definition: \/Users\/arungupta\/workspaces\/dcos-java-database\/app-definition.json\r\n[INFO] dcos token: \/Users\/arungupta\/workspaces\/dcos-java-database\/.dcos-token\r\n[INFO] dcos url: https:\/\/DCOS-ElasticLoadBa-1TH4TXIU5P783-1163025470.us-west-1.elb.amazonaws.com\/\r\n[INFO] ignore ssl certificate: true\r\n[INFO] deployable: group\r\n[INFO] Response from DC\/OS [200] {\"version\":\"2017-03-07T13:27:49.970Z\",\"deploymentId\":\"dbc80f96-28cb-4040-8d0d-78452e461ec1\"}<\/pre>\n<p>Aqui est\u00e3o alguns dos resultados atualizados do console do DC\/OS.<\/p>\n<p>Primeira guia Services atualizada:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2906\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-1-1024x811.png\" alt=\"DC\/OS Cluster Web Application\" width=\"900\" height=\"713\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1-1024x811.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1-300x238.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1-768x608.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1-1320x1045.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-1.png 1452w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Dois aplicativos no servi\u00e7o:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2907\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-2-1024x824.png\" alt=\"DC\/OS Cluster Web Application\" width=\"900\" height=\"724\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2-1024x824.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2-300x241.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2-768x618.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2-1320x1062.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-2.png 1422w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>O aplicativo de banco de dados tem uma tarefa:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2908\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-3-1024x484.png\" alt=\"DC\/OS Cluster Web Application\" width=\"900\" height=\"425\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-1024x484.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-300x142.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-768x363.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-1536x726.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3-1320x624.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-3.png 2048w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Status da tarefa do banco de dados:<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2909 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-4-1024x931.png\" alt=\"Database Service Discovery\" width=\"900\" height=\"818\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4-1024x931.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4-300x273.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4-768x698.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4-20x18.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4-1320x1200.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png 1502w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Registros da tarefa do banco de dados:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2910\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-5-1024x668.png\" alt=\"DC\/OS Cluster Web Application\" width=\"900\" height=\"587\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-1024x668.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-300x196.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-768x501.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-1536x1001.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-2048x1335.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-5-1320x861.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Ele mostra a sa\u00edda da API REST do Couchbase para configurar o servidor.<\/p>\n<p>Status da tarefa na Web:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2911\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-6-1024x761.png\" alt=\"DC\/OS Cluster Web Application\" width=\"900\" height=\"669\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-1024x761.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-300x223.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-768x571.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-1536x1142.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-20x15.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6-1320x981.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-6.png 1784w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Registros de tarefas da Web:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2912\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-7-1024x606.png\" alt=\"DC\/OS Cluster WildFly Output\" width=\"900\" height=\"533\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-1024x606.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-300x178.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-768x454.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-1536x909.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-2048x1212.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-7-1320x781.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Isso mostra que o aplicativo Java EE foi implantado com \u00eaxito.<\/p>\n<p>Acesse o aplicativo:<\/p>\n<pre class=\"lang:default decode:true\">curl https:\/\/DCOS-PublicSlaveLo-DD2EGGFVCJA0-1604955948.us-west-1.elb.amazonaws.com\/airlines\/resources\/airline<\/pre>\n<p>O endere\u00e7o \u00e9 o valor da chave\u00a0<code>${PublicSlaveDnsAddress}<\/code> da sa\u00edda do CloudFormation. Uma sa\u00edda formatada, por exemplo, com <a href=\"https:\/\/stedolan.github.io\/jq\/\">jq<\/a>parece:<\/p>\n<pre class=\"lang:default decode:true\">[\r\n  {\r\n    \"travel-sample\": {\r\n      \"country\": \"United States\",\r\n      \"iata\": \"Q5\",\r\n      \"callsign\": \"MILE-AIR\",\r\n      \"name\": \"40-Mile Air\",\r\n      \"icao\": \"MLA\",\r\n      \"id\": 10,\r\n      \"type\": \"airline\"\r\n    }\r\n  },\r\n  {\r\n    \"travel-sample\": {\r\n      \"country\": \"United States\",\r\n\r\n. . .\r\n\r\n     \"icao\": \"RLA\",\r\n      \"id\": 1203,\r\n      \"type\": \"airline\"\r\n    }\r\n  }\r\n]<\/pre>\n<p>\u00c9 isso a\u00ed!<\/p>\n<p>Conforme mencionado anteriormente, o c\u00f3digo-fonte completo usado neste blog est\u00e1 em <a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>.<\/p>\n<p>Este blog mostrou como um aplicativo Java simples pode se comunicar com um banco de dados usando a descoberta de servi\u00e7os no DC\/OS.<\/p>\n<p>Para obter mais informa\u00e7\u00f5es, confira:<\/p>\n<ul>\n<li><a href=\"https:\/\/dcos.io\/\">Documentos do DC\/OS<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/cloud\/kubernetes\/\">Couchbase em cont\u00eaineres<\/a><\/li>\n<li>Couchbase <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/developers\/\">Portal do desenvolvedor<\/a><\/li>\n<li>Fa\u00e7a perguntas sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a> ou <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\">Estouro de pilha<\/a><\/li>\n<li>Baixar <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/\">Couchbase<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>This blog will show how a simple Java application can talk to a database or database as a service (DBaaS) using service discovery in DC\/OS. Why Service Discovery? An application typically consist of\u00a0multiple\u00a0components\u00a0such as an application server, a database, a [&hellip;]<\/p>","protected":false},"author":58,"featured_media":2909,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814],"tags":[1520,1874,1873],"ppma_author":[8933],"class_list":["post-2903","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","tag-containers","tag-maven","tag-mesos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Service Discovery With Java and Database Application in DC\/OS<\/title>\n<meta name=\"description\" content=\"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/service-discovery-java-database-dcos\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Service Discovery With Java and Database Application in DC\/OS\" \/>\n<meta property=\"og:description\" content=\"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/service-discovery-java-database-dcos\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-07T14:07:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T10:30:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1502\" \/>\n\t<meta property=\"og:image:height\" content=\"1366\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Service Discovery With Java and Database Application in DC\/OS\",\"datePublished\":\"2017-03-07T14:07:57+00:00\",\"dateModified\":\"2023-06-19T10:30:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\"},\"wordCount\":985,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png\",\"keywords\":[\"containers\",\"maven\",\"mesos\"],\"articleSection\":[\"Application Design\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\",\"name\":\"Service Discovery With Java and Database Application in DC\/OS\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png\",\"datePublished\":\"2017-03-07T14:07:57+00:00\",\"dateModified\":\"2023-06-19T10:30:27+00:00\",\"description\":\"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png\",\"width\":1502,\"height\":1366,\"caption\":\"DC\/OS Cluster Web Application\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Service Discovery With Java and Database Application in DC\/OS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Descoberta de servi\u00e7o com Java e aplicativo de banco de dados no DC\/OS","description":"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/service-discovery-java-database-dcos\/","og_locale":"pt_BR","og_type":"article","og_title":"Service Discovery With Java and Database Application in DC\/OS","og_description":"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/service-discovery-java-database-dcos\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-03-07T14:07:57+00:00","article_modified_time":"2023-06-19T10:30:27+00:00","og_image":[{"width":1502,"height":1366,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/dcos-cluster-webapp-4.png","type":"image\/png"}],"author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Service Discovery With Java and Database Application in DC\/OS","datePublished":"2017-03-07T14:07:57+00:00","dateModified":"2023-06-19T10:30:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/"},"wordCount":985,"commentCount":4,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png","keywords":["containers","maven","mesos"],"articleSection":["Application Design"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/","url":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/","name":"Descoberta de servi\u00e7o com Java e aplicativo de banco de dados no DC\/OS","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png","datePublished":"2017-03-07T14:07:57+00:00","dateModified":"2023-06-19T10:30:27+00:00","description":"This blog will show how a simple Java application can talk to a database using service discovery in DC\/OS.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/dcos-cluster-webapp-4.png","width":1502,"height":1366,"caption":"DC\/OS Cluster Web Application"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Service Discovery With Java and Database Application in DC\/OS"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta \u00e9 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\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE. Gupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre uma infinidade de t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","first_name":"Arun","last_name":"Gupta","user_url":"","author_category":"","description":"Arun Gupta \u00e9 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\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE.\r\n\r\nGupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre diversos t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2903"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2903\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/2909"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2903"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}