Sobre el proyecto

Introducción canal [kə'næl], cuyo significado es canal/conducto/acequia, se utiliza principalmente para el análisis de registros de incremento de bases de datos MySQL, proporcionando suscripción y consumo de datos incrementales. En sus inicios, debido a la necesidad de sincronización entre centros de datos, Alibaba pasó gradualmente de los disparadores (triggers) comerciales al análisis de registros de bases de datos, dando lugar a numerosos negocios de suscripción y consumo incremental. Los negocios basados en suscripción y consumo de registros incrementales incluyen: réplica de bases de datos, copia de seguridad en tiempo real, construcción y mantenimiento en tiempo real de índices (índices heterogéneos divididos, índices invertidos, etc.), actualización de caché empresarial y procesamiento de datos incrementales con lógica comercial. Actualmente canal es compatible con las siguientes versiones de MySQL de origen: 5.1.x, 5.5.x, 5.6.x, 5.7.x, 8.0.x. Principio de funcionamiento Principio de replicación maestro-esclavo de MySQL - El maestro de MySQL escribe los cambios de datos en el registro binario (binary log, registrado como eventos de registro binario, binary log events). - El esclavo de MySQL copia los eventos del binary log del maestro al registro de relevo (relay log). - El esclavo de MySQL reproduce los eventos del relay log para reflejar los cambios de datos en sus propios datos. Principio de funcionamiento de canal - canal simula el protocolo de interacción del esclavo de MySQL, se hace pasar por un esclavo de MySQL y envía el protocolo dump al maestro de MySQL. - Cuando el maestro de MySQL recibe la solicitud dump, comienza a enviar el binary log a canal. - canal analiza el objeto binary log (originalmente un flujo de bytes). Notas de actualizaciones de versiones importantes Versión canal 1.1.x - Pruebas y optimización general de rendimiento, mejora del 150% (#726). - Soporte nativo para monitoreo con Prometheus (#765). - Soporte nativo para entrega de mensajes a Kafka (#695). - Soporte nativo para suscripción binlog de Alibaba Cloud RDS (maneja cambio automático maestro/esclavo y análisis fuera de línea de binlog en OSS). - Soporte nativo para imágenes Docker (#801). Versión canal 1.1.4 - Introduce capacidades WebUI, agrega el proyecto canal-admin, y admite la administración dinámica de canal orientada a WebUI, incluyendo operaciones de mantenimiento en línea de pantalla blanca para configuración, tareas, registros, etc. Documentación Se proporciona documentación completa, incluyendo Home, Introduction, QuickStart (Docker, Kafka/RocketMQ, Alibaba Cloud RDS, Prometheus), Canal Admin (QuickStart, Guide, ServerGuide, Docker), AdminGuide, ClientExample, ClientAPI, Performance, DevGuide, BinlogChange (MySQL 5.6/MariaDB), TableMetaTSDB, ReleaseNotes, Download, FAQ. Multiidioma canal adopta un modelo cliente-servidor, el protocolo de interacción utiliza protobuf 3.0; los clientes pueden implementar la lógica de consumo en diferentes lenguajes: - Cliente Java: ejemplo oficial. - Cliente C#: CanalSharp. - Cliente Go: canal-go. - Cliente PHP: canal-php. - Cliente Python: canal-python. - Cliente Rust: canal-rs. - Cliente Nodejs: canal-nodejs. canal, como herramienta de adquisición y análisis incremental de binlog de MySQL, puede entregar registros de cambios a sistemas MQ (como Kafka/RocketMQ), aprovechando las capacidades multilenguaje de MQ. Herramientas desarrolladas basadas en canal - canal2sql (genera SQL basado en binlog). Proyectos de código abierto y productos relacionados - Proyecto de código abierto del lado consumidor de canal: Otter. - Herramienta de migración y sincronización de datos de Alibaba para eliminar Oracle: yugong. - Proyecto de código abierto de sincronización fuera de línea de Alibaba: DataX. - Proyecto de código abierto de grupo de conexiones de base de datos de Alibaba: Druid. - Herramienta de sincronización de datos en tiempo real de Alibaba: DTS. Comentarios y problemas - Reporte de issues: GitHub Issues. - Los Issues del proyecto se sincronizarán a la comunidad de desarrolladores de Alibaba Cloud.