Sadot Hernández

SpringBoot + YugabyteDB

PublicadoSeptember 18, 2022

Cómo podemos implementar Spring Boot junto con Yugabyte con una base de datos SQL distribuida nativa en la nube con tecnología de Yugabyte.

image

En este tutorial rápido, veremos cómo podemos implementar Spring Boot junto con Yugabyte con una base de datos SQL distribuida nativa en la nube con tecnología de Yugabyte. Esta aplicación utiliza los repositorios Spring Data JPA familiares con una fuente de datos JDBC compatible con clústeres para Yugabyte.

1.- ¿Qué es YugabyteDB?

YugabyteDB es una base de datos SQL distribuida de código abierto que combina los beneficios de usar una base de datos relacional (p. ej., transacciones ACID) con las ventajas de los almacenes autofragmentados distribuidos globalmente (p. ej., bases de datos de documentos NoSQL).

En primer lugar, es una base de datos de código abierto y puede encontrarla en GitHub. Solo la parte de administración de la nube es propietaria, pero el motor en sí está impulsado por la comunidad.

En segundo lugar, YugabyteDB se basa en PostgreSQL, por lo que todas las herramientas que funcionan con PostgreSQL también funcionan con Yugabyte. Por lo tanto, no solo podrá usar PgAdmin para conectarse a Yugabyte, sino que también puede usar cualquier marco de software o biblioteca que funcione con los controladores de PostgreSQL. Como verá en este artículo, es extremadamente fácil hacer que una aplicación PostgreSQL existente funcione en Yugabyte.

En tercer lugar, YugabyteDB es versátil cuando se trata de volúmenes de datos y tráfico. Debido a que proporciona escalado automático, fragmentación y equilibrio automáticos, no tendrá que rediseñar su sistema en el momento en que sea demasiado exitoso para que la arquitectura inicial lo pueda manejar.

Requerimientos

  • Java 8
  • Maven 3.8.6
  • YugabyteDB
  • Descargar proyecto de prueba.
  • Acceso a un clúster con requisitos de clúster de, como mínimo:
    • 1 nodo maestro (4 CPU, 16 GB de RAM, disco de 32 GB)
    • 4 nodos trabajadores (8 CPU, 32 GB de RAM, disco de 64 GB)
    • Acceso privilegiado al contenedor habilitado

Para esta parte se puede crear una cuenta gratuita desde la página oficial: https://cloud.yugabyte.com/signup

YugabyteDB Login

2.- ¿Cómo conectarse a YugabyteDB?

Una vez que tengamos nuestro clouster gratuito desde la pagina de Yugabyte, podremos conectarnos a él mediante cualquier herramienta compatible con PostgreSQL. Por ejemplo, puedo usar la herramienta de interfaz de usuario PgAdmin o DBeaver

2.- Dependencias

3. Estructura del Proyecto

4.- YML

YugabyteDB admite el dialecto postgres de Hibernate.

Para nuestro ejemplo haremos uso de un pequeño servicio rest que nos devolverá un objeto con el resultado.

 

5.- Clase UsuarioController

6.- Entidad Usuario

7.- Repository UsuarioRepository

9.- Servicio UsuarioService

10.- Implementación UsuarioServiceImpl

11.- Resultado

Conclusión

Yugabyte es realmente fácil de implementar junto con JPA dado que no tienes que hacer nada nuevo o aprender algo nuevo y resulta super útil a la hora de querer migrar nuestra base de datos.

Si gustas ver el código fuente, este está disponible en Gitlab

Referencias

Mihalcea, V. (15 de Septiembre de 2022). vladmihalcea. Obtenido de Vlad Mihalcea: https://vladmihalcea.com/yugabytedb/

Vetter, T. (16 de Marzo de 2020). vmware. Obtenido de tanzu.vmware: https://tanzu.vmware.com/content/blog/spring-boot-distributed-sql-yugabytedb-pks