From 5a83d206ba8219fb6d7c26966e6001809843d50e Mon Sep 17 00:00:00 2001 From: zhangmeng <1334717033@qq.com> Date: Mon, 1 Nov 2021 17:26:05 +0800 Subject: [PATCH] =?UTF-8?q?update=202021=E5=B9=B411=E6=9C=881=E6=97=A516:3?= =?UTF-8?q?3:36?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mystyle-cloud-canal/pom.xml | 52 ++++++++++++++++++ .../com/zhangmeng/canal/CanalApplication.java | 17 ++++++ .../listener/CanalDataEventListener.java | 53 +++++++++++++++++++ .../src/main/resources/application.yml | 24 +++++++++ pom.xml | 1 + 5 files changed, 147 insertions(+) create mode 100644 mystyle-cloud-canal/pom.xml create mode 100644 mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/CanalApplication.java create mode 100644 mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/listener/CanalDataEventListener.java create mode 100644 mystyle-cloud-canal/src/main/resources/application.yml diff --git a/mystyle-cloud-canal/pom.xml b/mystyle-cloud-canal/pom.xml new file mode 100644 index 0000000..47fbbd3 --- /dev/null +++ b/mystyle-cloud-canal/pom.xml @@ -0,0 +1,52 @@ + + + + mystyle-cloud-parent + com.zhangmeng + 1.0-SNAPSHOT + + 4.0.0 + + mystyle-cloud-canal + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + com.xpand + starter-canal + 0.0.1-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-amqp + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + org.springframework.cloud + spring-cloud-starter-sleuth + + + + org.springframework.cloud + spring-cloud-sleuth-zipkin + + + \ No newline at end of file diff --git a/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/CanalApplication.java b/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/CanalApplication.java new file mode 100644 index 0000000..99b8f78 --- /dev/null +++ b/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/CanalApplication.java @@ -0,0 +1,17 @@ +package com.zhangmeng.canal; + + +import com.xpand.starter.canal.annotation.EnableCanalClient; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) +@EnableDiscoveryClient +@EnableCanalClient +public class CanalApplication { + public static void main(String[] args) { + SpringApplication.run(CanalApplication.class, args); + } +} \ No newline at end of file diff --git a/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/listener/CanalDataEventListener.java b/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/listener/CanalDataEventListener.java new file mode 100644 index 0000000..267b65e --- /dev/null +++ b/mystyle-cloud-canal/src/main/java/com/zhangmeng/canal/listener/CanalDataEventListener.java @@ -0,0 +1,53 @@ +package com.zhangmeng.canal.listener; + +import com.alibaba.otter.canal.protocol.CanalEntry; +import com.xpand.starter.canal.annotation.*; + +/** + * @author 转身的背影在心底里沉沦 + * @version 1.0 + * @date 2021/9/13 0:05 + */ +@CanalEventListener +public class CanalDataEventListener { + + /*** + * 增加数据监听 + * @param eventType + * @param rowData + */ + @InsertListenPoint + public void onEventInsert(CanalEntry.EventType eventType, CanalEntry.RowData rowData) { + rowData.getAfterColumnsList().forEach((c) -> System.out.println("By--Annotation: " + c.getName() + " :: " + c.getValue())); + } + + /*** + * 修改数据监听 + * @param rowData + */ + @UpdateListenPoint + public void onEventUpdate(CanalEntry.RowData rowData) { + System.out.println("UpdateListenPoint"); + rowData.getAfterColumnsList().forEach((c) -> System.out.println("By--Annotation: " + c.getName() + " :: " + c.getValue())); + } + + /*** + * 删除数据监听 + * @param eventType + */ + @DeleteListenPoint + public void onEventDelete(CanalEntry.EventType eventType) { + System.out.println("DeleteListenPoint"); + } + + /*** + * 自定义数据修改监听 + * @param eventType + * @param rowData + */ + @ListenPoint(destination = "example", schema = "mystyle-blog", table = {"user", "role"}, eventType = CanalEntry.EventType.QUERY) + public void onEventCustomUpdate(CanalEntry.EventType eventType, CanalEntry.RowData rowData) { + System.err.println("QUERY"); + rowData.getAfterColumnsList().forEach((c) -> System.out.println("By--Annotation: " + c.getName() + " :: " + c.getValue())); + } +} diff --git a/mystyle-cloud-canal/src/main/resources/application.yml b/mystyle-cloud-canal/src/main/resources/application.yml new file mode 100644 index 0000000..b6ea557 --- /dev/null +++ b/mystyle-cloud-canal/src/main/resources/application.yml @@ -0,0 +1,24 @@ +server: + port: 31004 +spring: + application: + name: mystyle-cloud-canan + zipkin: + sender: + type: web + base-url: http://localhost:9411/ + service: + name: mystyle-cloud-file + sleuth: + sampler: + probability: 1 + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 +canal: + client: + instances: + example: + host: 127.0.0.1 + port: 11111 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 95fb9a5..a2864d7 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,7 @@ mystyle-cloud-model mystyle-cloud-admin-manager mystyle-cloud-api + mystyle-cloud-canal