为了满足不断增长的业务数据查询需求,马蜂窝从仅使用 MySQL 转向将业务数据同步到 Elasticsearch 进行多维度检索,从而解决了搜索问题。然而,这种异构存储带来了数据同步的挑战;最初采用中间表和定时脚本同步增量数据的方案,但随着数据量增加,中间表维护和扩展变得低效且耗时。为了实现实时数据同步并优化流程,新的方案基于 MySQL Binlog,利用 Kafka 的有序性和完整性机制,将 Binlog 数据高效、准确地同步到 Elasticsearch,极大减少了业务方的开发负担和中间表维护的痛点。