Tentacolous 0.3.0¶
La version 0.3.0 añade sinks para colas de mensajes. Cada cambio de base de datos detectado por
Tentacolous ahora se puede reenviar a Kafka o RabbitMQ, ademas de (o en lugar de) invocar metodos
listener en proceso. La API de listeners y filtros de 0.2.0 no cambia.
Instalacion¶
<dependency>
<groupId>io.github.aimtone</groupId>
<artifactId>tentacolous</artifactId>
<version>0.3.0</version>
</dependency>
Agrega spring-kafka o spring-boot-starter-amqp a tu aplicacion solo cuando actives el sink
correspondiente. Tentacolous declara ambas como dependencias opcionales.
Novedades¶
- SPI
ChangeEventSink. Cualquier bean de Spring que la implemente recibe cada cambio detectado despues de los metodos listener. La entrega es al menos una vez; un fallo del sink deja el eventoPENDINGy reutiliza el flujo de reintentos existente. Deduplica poreventId. - Sink de Kafka (
tentacolous.kafka.*). Un registro por evento, con clave por record key para mantener el orden por fila, conacks=alle idempotencia del productor por defecto. - Sink de RabbitMQ (
tentacolous.rabbitmq.*). Publica en un topic exchange durable con routing keyentity.operation. - Formatos de mensaje.
envelope(por defecto, conbefore/aftery metadata) oraw. Los headerstentacolous-event-id,tentacolous-entityytentacolous-operationsiempre se envian. - Capturas. Reenvia una tabla a los sinks configurados sin escribir un metodo listener, con la
anotacion
@TentacolousCaptureo un beanCaptureequivalente. Ambas aceptan las mismas opciones que las anotaciones@Upon...— operaciones,entityName,exclude, filtro declarativo,TentacolousFilterprogramatico yorder— y sus filtros deciden que cambios llegan a los sinks.
Configuracion minima¶
spring:
kafka:
bootstrap-servers: localhost:9092
rabbitmq:
host: localhost
username: guest
password: guest
tentacolous:
kafka:
enabled: true
topic-prefix: "cdc."
rabbitmq:
enabled: true
exchange: tentacolous
Compatibilidad¶
- Las aplicaciones
0.2.xexistentes no se ven afectadas: los sinks son opcionales y las dependencias de los brokers tambien. - Los seis dialectos (PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite) siguen soportados
igual que en
0.2.0.
Consulta la guia tecnica actual para la referencia completa de API y configuracion, incluida la seccion Colas de mensajes.