微服务ES5 (ES MYSQL数据同步)

elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步

1.数据同步方案

常见的数据同步方案有三种:

  • 同步调用

  • 异步通知

  • 监听binlog

微服务ES5 (ES MYSQL数据同步)_第1张图片

基本步骤如下:

  • hotel-demo对外提供接口,用来修改elasticsearch中的数据

  • 酒店管理服务在完成数据库操作后,直接调用hotel-demo提供的接口,

微服务ES5 (ES MYSQL数据同步)_第2张图片

流程如下:

  • hotel-admin对mysql数据库数据完成增、删、改后,发送MQ消息

  • hotel-demo监听MQ,接收到消息后完成elasticsearch数据修改

 微服务ES5 (ES MYSQL数据同步)_第3张图片

流程如下:

  • 给mysql开启binlog功能

  • mysql完成增、删、改操作都会记录在binlog中

  • hotel-demo基于canal监听binlog变化,实时更新elasticsearch中的内容

方式一:同步调用

  • 优点:实现简单,粗暴

  • 缺点:业务耦合度高

方式二:异步通知

  • 优点:低耦合,实现难度一般

  • 缺点:依赖mq的可靠性

方式三:监听binlog

  • 优点:完全解除服务间耦合

  • 缺点:开启binlog增加数据库负担、实现复杂度高

 2.使用MQ异步通知来实现数据同步

目前可以通过 http://unpkg.com/element-ui 获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始使用。




 若无法获取到对应的资源,可以将unpkg.com改成unpkg.zhimg.com

微服务ES5 (ES MYSQL数据同步)_第4张图片

你可能感兴趣的:(微服务,elasticsearch,mysql)