使用Canal实现redis和数据库数据一致
1.安装Cancl,此处不讲解
2.修改配置(此处不讲解,可自行百度)
3.代码层
3.1配置
<dependencies>
<!--springboot-canal快速构建依赖包-->
<dependency>
<groupId>top.javatool</groupId>
<artifactId>canal-spring-boot-starter</artifactId>
<version>1.2.1-RELEASE</version>
</dependency>
<!-- 需要调用的业务自行修改-->
<!--依赖mall-goods-api-->
<dependency>
<groupId>com.gupaoedu</groupId>
<artifactId>mall-goods-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
3.2写一个handel实现implements EntryHandler
@Component
@CanalTable("ad_items")
public class AdItemsHandler implements EntryHandler<AdItems> {
@Autowired
private SkuFeign skuFeign;
@Override
public void insert(AdItems adItems) {
skuFeign.sava(adItems);
}
//自己补充
@Override
public void update(AdItems before, AdItems after) {
System.out.println("xiugai");
}
@Override
public void delete(AdItems adItems) {
EntryHandler.super.delete(adItems);
}
}
3.3yml配置
server:
port: 8083
spring:
application:
name: mall-canal
cloud:
nacos:
config:
file-extension: yaml
server-addr: 192.168.100.130:8848
discovery:
#Nacos的注册地址
server-addr: 192.168.100.130:8848
#Canal配置
canal:
server: 192.168.100.130:11111
destination: example
#日志配置
logging:
pattern:
console: "%msg%n"
level:
root: error