Herramientas y SDK

Presentación de Couchbase Java SDK 3.0 Alpha

Estoy muy emocionado de finalmente escribir este anuncio, ya que me permite poner el foco en algo que hemos estado trabajando duro durante los últimos meses. En un esfuerzo colectivo de todo el equipo de SDK, hemos empezado a desplegar SDK completamente nuevos que son más rápidos, tienen API más sencillas, están preparados para el futuro para las próximas características del servidor y facilitan la integración con los ecosistemas de frameworks.

Además de mejorar el SDK de Java, también estamos lanzando un nuevo SDK de Scala¡! Proporciona soporte de primera clase para todos los que desarrollan en Scala y hace que la integración en el ecosistema Scala sea mucho más fácil en el futuro.

Como todo esto es bastante nuevo, aquí hay dragones. Apreciamos todos los comentarios e informes de errores para hacer de este el mejor SDK que hemos entregado.

Destacados

Este artículo agrupa los aspectos más destacados en dos secciones. En una se analiza la API renovada (en todos los SDK) y en la otra las mejoras específicas del SDK de Java.

Mejoras en la API cross-SDK

En un esfuerzo por mejorar la usabilidad de las APIs, las hemos recortado y refactorizado bastante. El resultado es una estructura de API muy cohesionada y regular que debería facilitar mucho su uso tanto a los recién llegados como a los usuarios de Couchbase de toda la vida.

A modo de comparación rápida, he aquí algunas API del SDK de Java 2.x:

Y luego, por supuesto, están las sobrecargas de tiempo:

Compárelo con la nueva API:

Cada método devuelve un Resultado y tiene un bloque opcional al final llamado Opciones. El viejo Documento se ha sustituido por un equivalente más sencillo y regular en toda la API. Las propiedades opcionales como el tiempo de espera, los requisitos de durabilidad o el CAS se han trasladado al parámetro de opciones, lo que reduce las sobrecargas y permite buscar en un único lugar.

En posteriores entradas del blog se profundizará en la remodelación de la API, pero por ahora pasemos a las mejoras específicas de Java.

Mejoras específicas de Java

Los dos cambios más visibles para el usuario son:

  • Java 8 como versión básica de Java
  • API reactivas migradas de RxJava a Reactor

RxJava 1.x nos ha servido bien durante muchos años (de hecho, hemos sido uno de los primeros en adoptarlo), pero desde que se ha marcado como fin de vida hemos tenido que buscar alternativas. Junto con el hecho de que reactive-streams emergió como el estándar de facto para la integración entre las diferentes implementaciones, tuvimos que decidir entre RxJava 2.x y reactor. Mientras que ambos estaban cabeza a cabeza en el rendimiento (en su mayoría), después de un largo período de evaluación nos decidimos por reactor por las siguientes razones:

  • java 8 api nativo
  • Rendimiento ligeramente superior en algunas de nuestras cargas de trabajo clave.
  • más tracción por parte de la comunidad y crecimiento constante (también debido a estar integrado en el núcleo de spring)

Si tu plataforma de aplicaciones está construida en RxJava 2, no temas: como ambos soportan flujos reactivos, puedes simplemente conectarlo encima de nuestras APIs reactivas.

En el SDK 2.x, disponíamos de dos API: una API de bloqueo y una API asíncrona expuestas a través de RxJava. En el SDK 3 hemos añadido una tercera API para darte aún más control:

  • la API de bloqueo se mantiene
  • Una API reactiva expone las respuestas Mono y Flux del reactor
  • La API asíncrona expone CompletableFutures, que pueden utilizarse como bloques de construcción si se necesita el máximo nivel de rendimiento.

Por último, pero no menos importante, una mejora importante para todas las API de consulta reactiva es el soporte opcional para la contrapresión. Si necesitas leer resultados enormes y quieres evitar ponerlos todos en el montón a la vez, ahora puedes usar los mecanismos de contrapresión del reactor que estamos extendiendo a nuestra capa interna de E/S asíncrona. Estamos preparando otra entrada de blog en profundidad para este tema, ¡así que permanece atento!

Primeros pasos

Si quieres probarlo, puedes hacerlo desde nuestro repositorio maven de versiones preliminares:

 

Una vez resueltas las dependencias, puedes conectarte a cualquier cluster que sea anterior a Couchbase Server 5.0. A continuación, abre un bucket y utiliza la colección que prefieras (el soporte de colecciones ya forma parte de la API de una próxima versión de Couchbase Server). Para versiones anteriores sólo tienes que seleccionar la opción defaultCollection y simplemente funcionará:

Ahora puedes escribir y leer un documento:

Si quiere saber más, eche un vistazo a nuestro nuevo documentación que se está escribiendo y desarrollando constantemente. También puede buscar ejemplos de código aquí.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by Michael Nitschinger, Principal Software Engineer, Couchbase

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én es autor y mantiene el conector Spark de Couchbase. Michael participa activamente en la comunidad de código abierto, contribuyendo a otros proyectos como RxJava y Netty.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.