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