es数据同步(仅供自己参考)
数据同步的问题分析:
当MySQL进行增删改查的时候,数据库的数据有所改变,这个时候需要修改es中的索引库的值,这个时候就涉及到了数据同步的问题
解决方法:
1、同步方法:
当服务对MySQL进行增删改的时候,这个时候使用fegin远程调用,将所更改的数据发送到es的服务上,使得es数据得到及时的更新
优点:简单、粗暴
缺点:服务之间耦合度高,MySQL服务响应慢,必须等待es更改完成。
2、异步方法:
使用消息中间件rabbitMQ,服务进行增删改的时候将信息放到MQ,es的服务去MQ中拿到信息,去更新自己的数据
优点:耦合度低,实现难度一般
缺点:依赖MQ的可靠性
3、使用binlog
MySQL在进行增删改的时候会将操作记录到binlog上,然后在使用canal(通道)中间件,通知es发生改变,这样就会使得es数据得到更新
优点:完全接触服务之间的耦合
缺点:开启binlog增加数据库负担,实现复杂度高。