一、需求:
数据实时监听在项目中有着重要的意义,例如某些项目需要监听数据库的变化,生成对应的元数据块,这个数据块为前端接口提供数据支撑或者数据计算使用,监听到某些数据的变化,及时提醒上游或下游服务等等。
如何保证数据监听的高可用?本文用自身项目结构简易阐述,不喜勿喷。
二、方式
1、使用主动轮询的方式。
2、使用mysql提供的binlog客户端。
3、使用canal集群slave客户端。
三、架构图
1、搭建zk集群,为canal集群搭建使用。
2、搭建canal集群。
3、canal集群中创建canal实例,作为服务的canal客户端。
4、数据库使用主从集群。实时数据监听作为只读服务,可以监听只读从库作为数据源。实例可以配置双数据源,master作为主要数据源使用。slave作为备用数据源使用。当master和slave单库不可用时,可以相互切换保证canal内部的高可用。
5、业务服务集成canal监听,以及binlog监听两种方式,其中binlog作为备选,当canal集群与数据库连接导致异常时,binlog可以作为备选使用。
6、业务服务监听数据变化的同时需要将binlogname ,position,gtid 记录下来,方便两种切换时找到切换位置。
canal集群搭建canal集群搭建-CSDN博客
canal客户端springboot集成canal canal starter 小工具-CSDN博客
标签:canal,binlog,数据源,实时,集群,Mysql,监听,客户端 From: https://blog.csdn.net/qq_16938433/article/details/139436773