ES 的几个显著特点,能有效补足 MySQL 在企业级数据操作场景的缺陷
文本搜索能力:ES 是基于倒排索引实现的搜索系统,配合多样的分词器,在文本模糊匹配搜索上表现得比较好,业务场景广泛。
多维筛选性能好:亿级规模数据使用宽表预构建(消除 join),配合全字段索引,使 ES 在多维筛选能力上具备压倒性优势,加上文本搜索能力,独此一家。
开源和商业并行:ES 开源生态非常活跃,具备大量的用户群体,同时其内后也有独立的商业公司支持,而这让用户根据自身特点有了更加多样、渐进的选择。
为什么是数据迁移同步方式?
稳定性好:迁移同步对主数据库的操作主要是进行数据和日志的顺序读取,同时并发小,对主数据库稳定性影响较小(较多的下游订阅可能在网络层面存在影响,一般用消息解决)。另外日志(Binlog/WAL/Redo 等)可重放特质,让下游丢数据的可能性大大减小(处理好幂等的情况下)
业务解耦:一般而言主数据库更多承载事务型操作,而下游数据系统承载运营等层面的业务。
业务侵入小:数据迁移同步对业务无侵入,双端对接标准数据库(源),可以便利地找到开源、商业、云等各个方向的成熟解决方案或产品。
业务适配性好:某些数据迁移同步产品能够嵌入业务逻辑,让下游获取到更加贴近业务的数据,从而让数据服务更加有效和便捷。
数据迁移同步模型选择
订阅消费
优点:
堆积能力:由于引入了消息队列,所以整个链路是具备变更数据的堆积能力的。假设变更数据消费的比较慢,MySQL 本地较老的 binlog 文件由于磁盘空间的不足而被删除时,消息队列的数据依然存在,数据同步依然可以进行。
数据分发能力:引入消息队列后可以支持多方订阅