关于elasticsearch和数据库同步的几点疑问
我叫小菜菜 2019-01-05 06:57:30 如题。
想请教下各位同行,在使用elasticsearch全文搜索时,采用何种方式保持数据库和es的数据同步问题呢?
因为没有实际应用过,问了度娘等人,都是说采用go-mysql-elasticsearch插件、elasticsearch-jdbc插件,或者Logstash 等监听mysql实例(作为从服务器、或者定时更新等),进行mysql同步Elasticsearch。
删除数据时,需要手动删除elasticsearch的数据。(也就是搜索时能搜索到,点击访问则404)
优点:应用层简单不少。
缺点:要运行第三方插件并且需要手动删除es。
另一种思路时通过应用层进行两次操作(先更新mysql后更新elasticsearch),可以利用aop实现。
优点:能保证应用层数据一致。
缺点:应用层代码会复杂一些,并且通过客户端操作数据库时,会导致数据不一致。
以上。
想请教下各位大神,实际应用过程中,往往是采用怎样的解决方案呢?
感谢!