{"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\/es\/service-discovery-java-database-dcos\/","title":{"rendered":"Descubrimiento de servicios con Java y aplicaci\u00f3n de base de datos en DC\/OS"},"content":{"rendered":"<p>Este blog mostrar\u00e1 c\u00f3mo una simple aplicaci\u00f3n Java puede hablar con una base de datos o <a href=\"https:\/\/www.couchbase.com\/blog\/es\/what-is-a-database-as-a-service-dbaas-why-is-it-important\/\">base de datos como servicio<\/a> (<a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/cloud\/\">DBaaS<\/a>) utilizando el descubrimiento de servicios en 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>\u00bfPor qu\u00e9 Service Discovery?<\/h2>\n<p>Una aplicaci\u00f3n suele constar de varios componentes, como un servidor de aplicaciones, una base de datos, un servidor web, un servidor de almacenamiento en cach\u00e9 y un servidor de mensajer\u00eda. Normalmente, se ejecutan varias r\u00e9plicas de cada componente en funci\u00f3n de las necesidades de la aplicaci\u00f3n. Desplegar esta aplicaci\u00f3n utilizando un marco de orquestaci\u00f3n de contenedores significa que cada r\u00e9plica se ejecutar\u00eda como un contenedor. Por lo tanto, una aplicaci\u00f3n se despliega normalmente como una aplicaci\u00f3n multicontenedor.<\/p>\n<p>A cada contenedor se le asigna una direcci\u00f3n IP \u00fanica durante toda su vida. Pero los contenedores son ef\u00edmeros y pueden terminar y ser reprogramados en un host diferente por el marco de orquestaci\u00f3n. En ese caso, normalmente se asigna a un contenedor una direcci\u00f3n IP diferente. Esto significa que una aplicaci\u00f3n desplegada en un servidor de aplicaciones no puede confiar en la direcci\u00f3n IP de la base de datos. Aqu\u00ed es donde se requiere el descubrimiento de servicios.<\/p>\n<p>As\u00ed, a varias r\u00e9plicas de un componente se les asigna un nombre l\u00f3gico. Por ejemplo, <code>web<\/code> para todos los contenedores del servidor de aplicaciones y <code>db<\/code> para todos los contenedores de base de datos. Ahora, una aplicaci\u00f3n puede comunicarse con los contenedores de base de datos utilizando el nombre de servicio l\u00f3gico. Esto permite reprogramar los contenedores de base de datos en cualquier parte del cl\u00faster, y tambi\u00e9n escalar hacia arriba y hacia abajo de forma din\u00e1mica.<\/p>\n<p>Veamos c\u00f3mo se puede lograr esto en DC\/OS con una sola instancia de servidor de aplicaciones y servidor de base de datos. Este blog utilizar\u00e1 WildFly para el servidor de aplicaciones y Couchbase para la base de datos.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-mesos-dcos\/\">Cl\u00faster Couchbase en Mesos con DC\/OS<\/a> proporcionan m\u00e1s detalles sobre c\u00f3mo configurar un <a href=\"https:\/\/docs.couchbase.com\/home\/server.html\">Couchbase<\/a> en DC\/OS.<\/p>\n<p>Este blog utilizar\u00e1 los siguientes pasos principales:<\/p>\n<ul>\n<li>Configuraci\u00f3n del cl\u00faster DC\/OS<\/li>\n<li>Definici\u00f3n de la aplicaci\u00f3n Marathon<\/li>\n<li>Despliegue de la aplicaci\u00f3n<\/li>\n<\/ul>\n<p>El c\u00f3digo fuente completo utilizado en este blog se encuentra en\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>.<\/p>\n<p>Muchas gracias a <a href=\"https:\/\/twitter.com\/unterstein\">@unterstein<\/a> por crear el plugin de Maven y ayudarme a entender el funcionamiento interno de DC\/OS.<\/p>\n<h2>Configuraci\u00f3n del cl\u00faster DC\/OS<\/h2>\n<p>El cl\u00faster DC\/OS puede crearse f\u00e1cilmente mediante la aplicaci\u00f3n <a href=\"https:\/\/downloads.dcos.io\/dcos\/stable\/aws.html?_ga=1.207445715.1510362819.1478208859\">Plantilla de CloudFormation<\/a>. Las instrucciones detalladas, incluidos los requisitos del sistema y las capturas de pantalla y la configuraci\u00f3n, est\u00e1n disponibles en Instalar DC\/OS en AWS.<\/p>\n<p>La salida de CloudFormation se ve como se muestra:<\/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 el valor indicado para las teclas <code>Direcci\u00f3nDns<\/code> y <code>PublicSlaveDnsAddress<\/code>. El valor de la primera clave se puede utilizar para acceder a DC\/OS GUI y tiene el siguiente aspecto:<\/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 DC\/OS CLI como se explica en CLI. En resumen, se utilizan los siguientes comandos:<\/p>\n<ul>\n<li><code>dcos config set core.dcos_url https:\/\/${DnsAddress}<\/code> Sustituir <code>${DnsAddress}<\/code> con el valor correspondiente de la salida de CloudFormation.<\/li>\n<li><code>dcos auth login<\/code><\/li>\n<li><code>dcos config show core.dcos_acs_token<\/code>. Si a\u00fan no lo ha hecho, clone el repositorio desde\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>. Crear un nuevo archivo<code>.dcos-token<\/code>\u00a0y copiar la salida del comando en este archivo.<\/li>\n<li><code>dcos package install marathon-lb<\/code><\/li>\n<\/ul>\n<h2>Definici\u00f3n de la aplicaci\u00f3n Marathon<\/h2>\n<p>Marathon framework se utiliza para programar contenedores en DC\/OS. Se puede definir una aplicaci\u00f3n de marat\u00f3n proporcionando una definici\u00f3n de aplicaci\u00f3n.<\/p>\n<p>Como se mencion\u00f3 anteriormente, este blog mostrar\u00e1 c\u00f3mo una simple aplicaci\u00f3n Java puede hablar con una base de datos. Usaremos una aplicaci\u00f3n Java EE desplegada en WildFly y usaremos Couchbase como base de datos. La definici\u00f3n de la aplicaci\u00f3n tiene el siguiente aspecto:<\/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>\u00bfCu\u00e1les son los puntos clave en la definici\u00f3n de esta aplicaci\u00f3n?<\/p>\n<ul>\n<li>La aplicaci\u00f3n tiene dos contenedores: <code>base de datos<\/code> y <code>web<\/code>. El contenedor web depende del contenedor de base de datos definido mediante <code>dependencias<\/code> atributo.<\/li>\n<li><code>base de datos<\/code> usos del contenedor <code>arungupta\/couchbase:viaje<\/code>\u00a0Imagen Docker. Esta imagen se crea 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>. Utiliza la imagen base de Couchbase y utiliza\u00a0<a href=\"https:\/\/docs.couchbase.com\/server\/7.0\/rest-api\/rest-endpoints-all.html\">API REST de Couchbase<\/a> para preconfigurar la base de datos. Tambi\u00e9n se carga un cubo de muestra en la base de datos.<\/li>\n<li><code>web<\/code> usos del contenedor <code>arungupta\/wildfly-couchbase-javaee:travel<\/code> imagen. Esta imagen se crea 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>. Se trata de una aplicaci\u00f3n Java EE 7 integrada en WildFly. La aplicaci\u00f3n utiliza <code>COUCHBASE_URI<\/code> como variable de entorno para conectarse a la base de datos Couchbase. El valor de esta variable de entorno se configura para utilizar el descubrimiento de servicios DNS y se obtiene como se explica en Redes virtuales.<\/li>\n<\/ul>\n<p>Aseg\u00farese de cambiar el valor de <code>HAPROXY_0_VHOST<\/code> para que coincida con el valor de <code>${PublicSlaveDnsAddress}<\/code> de la salida de CloudFormation. La etiqueta <code>HAPROXY_0_VHOST<\/code> indica a Marathon-LB que exponga el contenedor Docker, el servidor de aplicaciones WildFly en nuestro caso, en el equilibrador de carga externo con un host virtual. La direcci\u00f3n <code>0<\/code> en la clave de la etiqueta corresponde al \u00edndice servicePort, comenzando por 0. Si tuvieras m\u00faltiples definiciones servicePort, las iterar\u00edas como 0, 1, 2, y as\u00ed sucesivamente. Desplegar una aplicaci\u00f3n con equilibrio de carga interno y externo con marathon-lb proporciona m\u00e1s detalles sobre c\u00f3mo configurar marathon-lb.<\/p>\n<p>Descubrimiento de servicios y equilibrio de carga proporcionan m\u00e1s detalles sobre el descubrimiento de servicios y el equilibrio de carga en DC\/OS.<\/p>\n<h2>Despliegue de la aplicaci\u00f3n con Maven<\/h2>\n<p>La aplicaci\u00f3n puede desplegarse utilizando\u00a0<a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\">dcos-maven-plugin<\/a>.<\/p>\n<p>Plugin parece:<\/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>Los puntos principales de este fragmento son:<\/p>\n<ul>\n<li>La versi\u00f3n del plugin es 0.2. Esto indica que el plugin a\u00fan se encuentra en las primeras fases de desarrollo.<\/li>\n<li><code>dcosUrl<\/code> es el valor de <code>${DnsAddress}<\/code> de la salida de CloudFormation. Esta direcci\u00f3n se utiliza para el despliegue de la aplicaci\u00f3n.<\/li>\n<li><code>&lt;deployable&gt;<\/code> permite diferentes tipos de despliegue - aplicaci\u00f3n, grupo o pods. Este elemento es una sugerencia para el plugin y es probable que desaparezca en una versi\u00f3n futura a medida que se consolide la API de Marathon. Siga <a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\/issues\/11\">#11<\/a> para m\u00e1s detalles.<\/li>\n<\/ul>\n<p>Encontrar\u00e1 m\u00e1s detalles y la configuraci\u00f3n del complemento en <a href=\"https:\/\/github.com\/dcos-labs\/dcos-maven-plugin\">dcos-maven-plugin<\/a>.<\/p>\n<p>Despliegue la aplicaci\u00f3n:<\/p>\n<pre class=\"lang:default decode:true\">mvn install<\/pre>\n<p>Se muestra la siguiente salida:<\/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>Estos son algunos de los resultados actualizados de la consola DC\/OS.<\/p>\n<p>Primera actualizaci\u00f3n de la pesta\u00f1a Servicios:<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>Dos aplicaciones en el servicio:<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>La aplicaci\u00f3n de base de datos tiene una tarea:<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>Estado de la tarea de base de datos:<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 de la tarea de base de datos:<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>Muestra la salida de la API REST de Couchbase para configurar el servidor.<\/p>\n<p>Estado de la tarea 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 la tarea 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>Muestra que la aplicaci\u00f3n Java EE se ha desplegado correctamente.<\/p>\n<p>Accede a la aplicaci\u00f3n:<\/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>La direcci\u00f3n es el valor de la clave\u00a0<code>${PublicSlaveDnsAddress}<\/code> de la salida de CloudFormation. Una salida formateada, por ejemplo con <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>\u00a1Eso es!<\/p>\n<p>Como ya se ha mencionado, el c\u00f3digo fuente completo utilizado en este blog se encuentra en <a href=\"https:\/\/github.com\/arun-gupta\/dcos-java-database\">github.com\/arun-gupta\/dcos-java-database<\/a>.<\/p>\n<p>Este blog mostr\u00f3 c\u00f3mo una aplicaci\u00f3n Java simple puede hablar con una base de datos utilizando el descubrimiento de servicios en DC\/OS.<\/p>\n<p>Para m\u00e1s informaci\u00f3n, consulte:<\/p>\n<ul>\n<li><a href=\"https:\/\/dcos.io\/\">Documentos de DC\/OS<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/cloud\/kubernetes\/\">Couchbase en contenedores<\/a><\/li>\n<li>Couchbase <a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/\">Portal para desarrolladores<\/a><\/li>\n<li>Haga preguntas sobre <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a> o <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\">Stack Overflow<\/a><\/li>\n<li>Descargar <a href=\"https:\/\/www.couchbase.com\/blog\/es\/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\/es\/service-discovery-java-database-dcos\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Descubrimiento de servicios con Java y aplicaci\u00f3n de base de datos en 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\/es\/service-discovery-java-database-dcos\/","og_locale":"es_MX","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\/es\/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":"es","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":"Descubrimiento de servicios con Java y aplicaci\u00f3n de base de datos en 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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-dcos\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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, Vicepresidente, Defensa del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@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 es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE. Gupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/es\/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 es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE.\r\n\r\nGupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2903"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2903\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/2909"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2903"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}