Elasticsearch 中的数据来组与mysql,因此mysql数据发生改变时,elasticsearch 也必须跟着改变,这个就是elasticsearch 与 mysql 之间的数据同步。
在微服务中,负责酒店管理(操作mysql) 的业务与负责酒店搜索(操作elasticsearch)的业务可能在两个不同的微服务上,数据同步该如何实现那?
方案一:同步调用
优点:实现简单、粗暴
缺点:业务耦合度高
方案二:异步通知
优点:低耦合,实现难度一般
缺点: 依赖MQ的可靠性
方案三:监听binlog
优点: 完全解除服务间耦合
缺点: 开启binlog增加数据库负担,实现负责度高