alibaba/canal

阿里巴巴 MySQL binlog 增量订阅&消费组件

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 59 minutes ago
Added to GitGenius on September 1st, 2026
Created on January 13th, 2013
Open Issues & Pull Requests: 1,253 (+0)
GitHub issues: Enabled
Number of forks: 7,629
Total Stargazers: 29,730 (+0)
Total Subscribers: 1,164 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.9 days
Mean response time: 77.1 days
90th percentile: 186.1 days
Tracked items: 409

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 65% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 9% of issues opened in the past year have been closed. Three people close 71% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 245
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 795 days
Stale 30+ days: 241
Stale 90+ days: 226

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 4
Events in 7 days: 4

Top labels

  • bug (7)
  • enhancement (2)
  • feature (1)

Detailed Description

Canal is a MySQL binlog parsing component that enables incremental data subscription and consumption.

Canal solves the problem of capturing database changes in real time by parsing MySQL binary logs. It works by simulating a MySQL slave connection, sending a dump protocol request to the MySQL master, receiving the binary log stream, and parsing the binary log events into consumable data. This approach originated from Alibaba's need to synchronize data across geographically distributed data centers without relying on application-level triggers.

The tool suits projects requiring database mirroring, real-time backups, search index construction and maintenance, cache invalidation, or incremental data processing with business logic. It works with MySQL versions spanning from 5.1.x through 8.0.x. Organizations should adopt canal when they need to decouple data synchronization from application code and handle high-volume incremental changes reliably. The project includes native support for Kafka and RocketMQ message delivery, Prometheus monitoring, Aliyun RDS binlog subscription, and Docker deployment, making it suitable for cloud-native and distributed architectures. A WebUI management layer called canal-admin provides dynamic configuration, task management, and operational visibility.

Development activity shows sustained investment in performance optimization and operational tooling. The project maintains active issue resolution and feature development across multiple dimensions including monitoring integration, message broker support, and cloud platform compatibility. Documentation is comprehensive, covering quick-start guides for various deployment scenarios and operational procedures. The codebase demonstrates attention to production concerns through native support for observability and administrative interfaces rather than treating these as afterthoughts.