{"id":1547,"date":"2014-12-17T16:16:21","date_gmt":"2014-12-17T16:16:21","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1547"},"modified":"2023-06-27T23:17:46","modified_gmt":"2023-06-28T06:17:46","slug":"couchbase-java-sdk-140-new-and-noteworthy","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-java-sdk-140-new-and-noteworthy\/","title":{"rendered":"Couchbase Java SDK 1.4.0 - Nuevo y digno de menci\u00f3n"},"content":{"rendered":"<p>A trav\u00e9s de este blog publicamos la primera versi\u00f3n preliminar para desarrolladores del SDK Java 1.4.0. Aparte de las habituales correcciones de errores y mejoras, esta nueva versi\u00f3n menor proporciona soporte para la gesti\u00f3n optimizada de conexiones que se introdujo recientemente en Couchbase Server 2.5.0. M\u00e1s informaci\u00f3n sobre las novedades a continuaci\u00f3n.<\/p>\n<p>Puede descargar la vista previa en <a href=\"https:\/\/search.maven.org\/#artifactdetails%7Ccom.couchbase.client%7Ccouchbase-client%7C1.4.0-dp%7Cjar\">Maven Central<\/a> o un archivo zip con todos los <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/java\/1.4.0-dp\/Couchbase-Java-Client-1.4.0-dp.zip\">JARs<\/a> incluido.<\/p>\n<p><em><strong>Actualizaci\u00f3n<\/strong>: La vista previa para desarrolladores se ha actualizado a 1.4.0dp2 a partir del 4 de abril de 2014.<\/em><\/p>\n<h2>Gesti\u00f3n optimizada de las conexiones<\/h2>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/download\/\">Servidor Couchbase 2.5.0<\/a> introdujo una nueva forma de obtener una configuraci\u00f3n de cl\u00faster hace un par de semanas. Adem\u00e1s de la forma anterior de cargarla a trav\u00e9s del puerto 8091 (http), ahora es posible que el SDK la cargue directamente a trav\u00e9s del protocolo binario subyacente (puerto 11210). Anteriormente, para realizar un seguimiento de los cambios en curso en el cl\u00faster, el cliente ten\u00eda que establecer una conexi\u00f3n de streaming con el puerto de configuraci\u00f3n (que enviaba nuevos fragmentos de configuraci\u00f3n al cliente). Ahora, el cliente recibe nuevas configuraciones junto con respuestas de operaciones de datos a trav\u00e9s del puerto binario. Esto hace que el arranque sea mucho m\u00e1s r\u00e1pido y eficiente, facilitando la gesti\u00f3n de grandes despliegues.<\/p>\n<p>Cuando se utiliza el SDK de Java, no hay nada que deba cambiarse en cuanto a la API, pero dado que el proceso de arranque cambia ligeramente, es bueno entender lo que realmente est\u00e1 pasando. Para una introducci\u00f3n general a este tema, recomiendo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/libcouchbase-23-dp2-enhanced-configuration-updates\/\">Entrada del blog de Mark Nunberg<\/a> sobre los cambios similares en libcouchbase, que cubre muchas de las partes circundantes.<\/p>\n<p>El Java SDK toma la lista de nodos bootstrap pasados, pero ignora todo lo de la URI aparte del nombre de host por ahora. Intenta contactar con el servidor de destino en el puerto 11210. Si el servidor responde con una configuraci\u00f3n v\u00e1lida (lo que ocurre si es un nodo 2.5.0 o posterior y un bucket couchbase), esta configuraci\u00f3n se almacena inmediatamente y se utiliza. No se adjunta ninguna conexi\u00f3n de streaming, pero esta conexi\u00f3n binaria se reutiliza para obtener actualizaciones de configuraci\u00f3n bajo demanda seg\u00fan sea necesario. Si el servidor no responde con una configuraci\u00f3n v\u00e1lida, se intenta con todos los dem\u00e1s nodos de la lista bootstrap con el mismo comportamiento. Si ninguno de ellos devuelve una configuraci\u00f3n v\u00e1lida (por ejemplo, si se utiliza un bucket memcache o todos los nodos del cl\u00faster son de la versi\u00f3n 2.2 o anteriores), el cliente vuelve al (antiguo) bootstrap de tipo HTTP y a la conexi\u00f3n de streaming.  Aunque este proceso cambia el comportamiento y no parece coincidir con lo que los argumentos implican que est\u00e1 ocurriendo, creemos que es lo correcto por motivos de compatibilidad con las aplicaciones existentes (aunque estamos abiertos a comentarios).<\/p>\n<p>El mismo proceso se establece cuando la conexi\u00f3n de configuraci\u00f3n se pierde u otras partes del SDK indican que la conexi\u00f3n de configuraci\u00f3n est\u00e1 obsoleta (por ejemplo, una gran cantidad de operaciones fallidas).<\/p>\n<p>Se ha a\u00f1adido el registro a nivel INFO para que sea visible desde los registros qu\u00e9 enfoque de arranque se ha utilizado. Si las nuevas facilidades de gesti\u00f3n de conexiones funcionaron, se muestra este mensaje de registro:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">INFO com.couchbase.client.vbucket.provider.BucketConfigurationProvider:  Could bootstrap through carrier publication.<\/div>\n<\/div>\n<p>De lo contrario, se puede encontrar esta salida de registro:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">INFO com.couchbase.client.vbucket.provider.BucketConfigurationProvider:  Binary config not available, bootstrapped through HTTP.<\/div>\n<\/div>\n<p>Dado que este cambio es un poco m\u00e1s grande dentro del SDK, por favor, patear los neum\u00e1ticos en la vista previa de desarrollador (que es principalmente por qu\u00e9 optamos en hacer una vista previa en lugar de ir directamente a una versi\u00f3n final) y nos dan retroalimentaci\u00f3n sobre diversos escenarios en su entorno.  Nuestro equipo de pruebas tambi\u00e9n lo est\u00e1 probando.<\/p>\n<h2>N\u00famero total de registros en ViewResponse<\/h2>\n<p>Cada vista no reducida expone el n\u00famero total de filas de la vista y esto se refleja ahora tambi\u00e9n en el SDK de Java. Esto es especialmente \u00fatil en escenarios de paginaci\u00f3n y pruebas unitarias. He aqu\u00ed un ejemplo (del conjunto de datos de la muestra de cerveza):<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">\n<p>Vista vista = c.getView(\"cerveza\", \"cerveceria_cervezas\");<br \/>\nConsulta consulta = nueva consulta();<br \/>\nquery.setLimit(10);<\/p>\n<p>ViewResponse response = c.query(view, query);<br \/>\nSystem.out.println(\"En este lote: \" + response.size());<br \/>\nSystem.out.println(\"Total en esta vista: \" + response.getTotalRows());<\/p>\n<\/div>\n<\/div>\n<p>Esto imprime:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">En este lote: 10<br \/>\nTotal en esta vista: 7303<\/div>\n<\/div>\n<p>Se trata de una antigua petici\u00f3n de los usuarios que ahora se incluye en esta versi\u00f3n.<\/p>\n<h2>Capacidades de lectura de r\u00e9plicas mejoradas<\/h2>\n<p>Otra petici\u00f3n de los usuarios -desde que a\u00f1adimos las capacidades de lectura de r\u00e9plicas- era que tambi\u00e9n hubiera una forma de recuperar el valor CAS del nodo r\u00e9plica. Esto se parece b\u00e1sicamente al conocido comando \"gets\", pero esta vez para r\u00e9plicas. Hemos a\u00f1adido la capacidad a trav\u00e9s de los comandos asyncGetsFromReplica y getsFromReplica. He aqu\u00ed un ejemplo de c\u00f3mo utilizar los nuevos m\u00e9todos:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">\n<p>CASValor<object>clave = c.getsFromReplica(\"clave\");System.out.println(\"El valor es: \" + key.getValue() +\", CAS es: \" + key.getCas());Esto imprimir\u00e1 algo como:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">Valor es: myvalue, CAS es: 5954429833794<\/div>\n<\/div>\n<p>Tenga en cuenta que la sem\u00e1ntica es la misma que con \"getFromReplica\", por lo que el valor devuelto con CAS podr\u00eda ser del nodo maestro o de uno de los nodos r\u00e9plica, dependiendo de qui\u00e9n respondi\u00f3 primero. Este valor CAS puede utilizarse para comandos de escritura posteriores que necesiten incluir el valor CAS para el bloqueo optimista.<\/p>\n<h2>C\u00f3digos de estado seguros en OperationStatus<\/h2>\n<p>En el pasado, siempre ha sido un poco complicado tratar con cadenas de respuesta de estado de operaciones futuras. No hab\u00eda una buena manera de tratar con ellos aparte de la comprobaci\u00f3n de cadenas. Esta versi\u00f3n menor trae StatusCodes a los objetos OperationStatus, lo que le permite simplemente comprobar contra un ENUM:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">OperationFuture set = c.set(\"clave\", \"valor\");assert set.getStatus().getStatusCode() == StatusCode.SUCCESS;<\/div>\n<\/div>\n<p>Ahora podemos utilizar el mismo m\u00e9todo para comprobar si una respuesta de adici\u00f3n ha fallado porque la clave ya se ha establecido:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace\">OperationFuture add = c.add(\"clave\", \"valor\");assert add.getStatus().getStatusCode() == StatusCode.ERR_EXISTS;<\/div>\n<\/div>\n<p>El StatusCode proporciona todos los posibles c\u00f3digos de estado que pueden ser devueltos, y antes de la versi\u00f3n final tambi\u00e9n proporcionaremos la documentaci\u00f3n adecuada cuando puedan ocurrir (para que sepa qu\u00e9 buscar al comprobar los c\u00f3digos).<\/p>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p>Hemos decidido realizar una vista previa para desarrolladores de esta versi\u00f3n menor porque queremos asegurarnos de que las nuevas funciones optimizadas de gesti\u00f3n de conexiones se prueban antes de la versi\u00f3n final. Por favor, compru\u00e9balo e inf\u00f3rmanos de cualquier problema que encuentres. <a href=\"https:\/\/www.couchbase.com\/blog\/es\/issues\/\">en nuestro gestor de incidencias<\/a>. Tan pronto como nuestro equipo de pruebas nos haya dado luz verde y si no hay preocupaciones por parte de los usuarios de DP, \u00a1lo lanzaremos como GA!<\/object><\/p>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Via this blog we&#8217;re releasing the first developer preview of the 1.4.0 Java SDK. Aside from the usual bugfixes and enhancements, this new minor release provides support for optimized connection management which was recently introduced in Couchbase Server 2.5.0. See [&hellip;]<\/p>","protected":false},"author":19,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[8987],"class_list":["post-1547","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Java SDK 1.4.0 - New and Noteworthy - The Couchbase Blog<\/title>\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\/couchbase-java-sdk-140-new-and-noteworthy\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Java SDK 1.4.0 - New and Noteworthy\" \/>\n<meta property=\"og:description\" content=\"Via this blog we&#8217;re releasing the first developer preview of the 1.4.0 Java SDK. Aside from the usual bugfixes and enhancements, this new minor release provides support for optimized connection management which was recently introduced in Couchbase Server 2.5.0. See [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-java-sdk-140-new-and-noteworthy\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-17T16:16:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-28T06:17:46+00:00\" \/>\n<meta name=\"author\" content=\"Michael Nitschinger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@daschl\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Nitschinger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/\"},\"author\":{\"name\":\"Michael Nitschinger\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d\"},\"headline\":\"Couchbase Java SDK 1.4.0 &#8211; New and Noteworthy\",\"datePublished\":\"2014-12-17T16:16:21+00:00\",\"dateModified\":\"2023-06-28T06:17:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/\"},\"wordCount\":1062,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/\",\"name\":\"Couchbase Java SDK 1.4.0 - New and Noteworthy - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-17T16:16:21+00:00\",\"dateModified\":\"2023-06-28T06:17:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Java SDK 1.4.0 &#8211; New and Noteworthy\"}]},{\"@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\/e5d4d332756da6f361dd88c1576de61d\",\"name\":\"Michael Nitschinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/95e178617974d46e3b02dd1754a3f60b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"caption\":\"Michael Nitschinger\"},\"description\":\"Michael Nitschinger works as a Principal Software Engineer at Couchbase. He is the architect and maintainer of the Couchbase Java SDK, one of the first completely reactive database drivers on the JVM. He also authored and maintains the Couchbase Spark Connector. Michael is active in the open source community, a contributor to various other projects like RxJava and Netty.\",\"sameAs\":[\"https:\/\/nitschinger.at\",\"https:\/\/x.com\/daschl\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/michael-nitschinger\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Java SDK 1.4.0 - New and Noteworthy - The Couchbase Blog","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\/couchbase-java-sdk-140-new-and-noteworthy\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Java SDK 1.4.0 - New and Noteworthy","og_description":"Via this blog we&#8217;re releasing the first developer preview of the 1.4.0 Java SDK. Aside from the usual bugfixes and enhancements, this new minor release provides support for optimized connection management which was recently introduced in Couchbase Server 2.5.0. See [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-java-sdk-140-new-and-noteworthy\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-17T16:16:21+00:00","article_modified_time":"2023-06-28T06:17:46+00:00","author":"Michael Nitschinger","twitter_card":"summary_large_image","twitter_creator":"@daschl","twitter_misc":{"Written by":"Michael Nitschinger","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/"},"author":{"name":"Michael Nitschinger","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d"},"headline":"Couchbase Java SDK 1.4.0 &#8211; New and Noteworthy","datePublished":"2014-12-17T16:16:21+00:00","dateModified":"2023-06-28T06:17:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/"},"wordCount":1062,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/","name":"Couchbase Java SDK 1.4.0 - New and Noteworthy - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-17T16:16:21+00:00","dateModified":"2023-06-28T06:17:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-java-sdk-140-new-and-noteworthy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Java SDK 1.4.0 &#8211; New and Noteworthy"}]},{"@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\/e5d4d332756da6f361dd88c1576de61d","name":"Michael Nitschinger","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/95e178617974d46e3b02dd1754a3f60b","url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","caption":"Michael Nitschinger"},"description":"Michael Nitschinger trabaja como Ingeniero de Software Principal en Couchbase. Es el arquitecto y mantenedor del SDK Java de Couchbase, uno de los primeros controladores de bases de datos completamente reactivos en la JVM. Tambi\u00e9n es autor y mantiene el conector Spark de Couchbase. Michael participa activamente en la comunidad de c\u00f3digo abierto, contribuyendo a otros proyectos como RxJava y Netty.","sameAs":["https:\/\/nitschinger.at","https:\/\/x.com\/daschl"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/michael-nitschinger\/"}]}},"authors":[{"term_id":8987,"user_id":19,"is_guest":0,"slug":"michael-nitschinger","display_name":"Michael Nitschinger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","author_category":"","last_name":"Nitschinger, Principal Software Engineer, Couchbase","first_name":"Michael","job_title":"","user_url":"https:\/\/nitschinger.at","description":"Michael Nitschinger trabaja como Ingeniero de Software Principal en Couchbase. Es el arquitecto y mantenedor del SDK Java de Couchbase, uno de los primeros controladores de bases de datos completamente reactivos en la JVM. Tambi\u00e9n es autor y mantiene el conector Spark de Couchbase. Michael participa activamente en la comunidad de c\u00f3digo abierto, contribuyendo a otros proyectos como RxJava y Netty."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1547","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1547"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1547\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1547"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}