ES
文章平均质量分 80
黄豆籽的大窝
网络工程专业毕业的程序猿一枚
展开
-
MySQL与ES数据同步的四种方案及实践演示
针对多数据源写入的场景,可以借助MQ实现异步的多源写入,这种情况下各个源的写入逻辑互不干扰,不会由于单个数据源写入异常或缓慢影响其他数据源的写入,虽然整体写入的吞吐量增大了,但是由于MQ消费是异步消费,所以不适合实时业务场景。不易出现数据丢失问题,主要基于MQ消息的消费保障机制,比如ES宕机或者写入失败,还能重新消费MQ消息。针对这种情况,有数据强一致性要求的,就必须双写放到事务中来处理,而一旦用上事物,则性能下降更加明显。可能出现延时问题:MQ是异步消费模型,用户写入的数据不一定可以马上看到,造成延时。原创 2023-09-12 17:44:09 · 4814 阅读 · 2 评论 -
MySQL与ES数据同步之异步调用
此处Controller充当生产者,接到请求,先执行mysql操作,然后将消息按情况通过交换机转发到不同的队列,相应的消费者收到消息后对ES进行处理。上一篇是同步调用,我们在中间加上MQ就可以实现异步调用,这种方式性能高,不易出现数据丢失问题,多源写入之间相互隔离,便于扩展更多的数据源写入。下面通过SpringBoot项目演示一下,首先本地要有MQ,我这里使用RabbitMQ。同时也会带来一些问题,首先还是代码侵入强,其次系统复杂度会增加,因为引入了消息中间件。这种方案也不是很推荐,简单了解学习一下就好。原创 2023-09-12 17:28:11 · 931 阅读 · 0 评论 -
MySQL与ES数据同步之同步调用
这是第一种方法,也是最简单的方法,在对mysql进行增删改查时,操作后直接调用ES方法实现增删改查。可以看出这种方式业务逻辑简单,实时性高,但是会有业务强耦合,存在双写失败丢数据风险,性能也比较差,代码侵入强,不推荐,但是可以作为一种普通方案简单来看一下。接下来,我们通过SpringBoot项目实际操作一下。原创 2023-09-12 17:06:35 · 955 阅读 · 0 评论 -
SpringBoot整合Easy-ES实现对ES操作
继承BaseMapper,整体操作都与MybatisPlus类似。这里是用的springboot版本是2.6.0。注意修改address信息,该为自己的ES地址。添加扫描ESMapper的注解,指定路径。包括对索引操作和对数据进行操作的接口。listener部分我们先不用管。使用PostMan测试。Service实现类。原创 2023-09-12 16:00:12 · 2076 阅读 · 2 评论 -
SpringBoot整合Canal实现MySQL与ES数据同步
开始之前请确认docker中已运行mysql与canal容器,并完成了监听binlog配置。原创 2023-09-12 15:29:54 · 2264 阅读 · 2 评论 -
Docker部署Canal监听MySQL binlog
canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地。第一页长这样,这里我们就修改一下框中的部分,第一个是我们在mysql配置文件中设置的slaveId,下面的是数据库地址,IP:端口号。下面的是需要监听的库表,图中就是默认状态,监听全部,可根据实际需求改。原创 2023-09-12 15:10:35 · 1081 阅读 · 0 评论 -
Docker安装部署ElasticSearch(ES)
创建/opt/es/plugins目录。用于在宿主机挂载日志,数据等内容。创建/opt/es/data目录。创建/opt/es/logs目录。创建/opt/es/conf目录。原创 2023-09-04 09:45:11 · 2017 阅读 · 0 评论