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