在 “Spring Boot技术栈博客系统企业级前后端实战 ” 课程中(http://coding.imooc.com/class/125.html), 有学员问道 ,生产中ES里面的数据是如何生成的?测试用例中通过ElasticsearchRepository注入三条数据,再通过ElasticsearchRepository查询出来。在实际生产场景中是如何处理的呢? 是在对RDBMS插入/更新数据时,同时通过ElasticsearchRepository对ES进行数据插入/更新? 还是说在ES和RDBMS间建立同步机制。。。?
这个问题问的很好,其实,他在问题已经给出了答案。
基本上会有两种方式:
- 插入数据时,同时向关系型数据库和ES种插入。优点是实现方便,实时性好。缺点是,没有办法处理历史遗留数据。所以合适在新项目种采用。这也是本课程采用的方式。
- 先插入数据到关系型数据库,而后再通过采用同步机制,将数据同步到ES。这种方式优点是,即便后期引入ES,也能保证前期的历史数据同步到ES。缺点是,同步插件需要额外开发,目前市面上能用的插件还是比较少,更新慢。另一个缺点是,更新速度有延时。
热门评论
插入数据时,可以采用kafka发送消息,收到消息后再向es添加数据