canal实例开发

1.简介

canal所在地址:192.168.1.107

canal安装路径: /usr/local/canal

zookeeper所在地址:192.168.1.108

kafka所在地址:192.168.1.109

2.关闭程序

(1)关闭canal服务(192.168.1.107)

cd /usr/local/canal/bin
sh stop.sh 

(2)删除zookeeper相应配置(192.168.1.108)

zkCli.sh 
ls /
deleteall /otter/canal

3.编写实例

cd /usr/local/canal/conf
cp -r example_sale_order_base_item_rela/* example_sale_agency_team_info/
vim example_sale_agency_team_info/instance.properties
//修改instance.properties
# table regex
canal.instance.filter.regex=ticket_sell.sale_agency_team_info
# mq config
canal.mq.topic=canal-sale-agency-team-info

4.修改其他配置

cd /usr/local/canal/conf
vim canal.properties
//canal.properties
//实例列表
canal.destinations = example,example1,example_sale_agency_team_info

5.启动canal服务

cd /usr/local/canal/bin
sh startup.sh 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
canal是一款基于MySQL binlog技术实现的增量据订阅和消息系统,而Spring是一款流行的Java开源框架。将canal和Spring整合起来,可以实现高效、可靠的据订阅、同步和处理。 实现canal和Spring的整合,可以借助canal-client和SpringBoot框架。下面是一个简单的演示demo: 首先,需要在pom.xml文件中加入canal和SpringBoot的依赖: ```xml <dependencies> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal-client</artifactId> <version>1.1.4</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.5.5</version> </dependency> </dependencies> ``` 然后,在application.properties文件中配置canal客户端的IP、端口、用户名和密码: ```properties canal.host=127.0.0.1 canal.port=11111 canal.destination=test canal.username= canal.password= ``` 接下来,在SpringBoot的启动类中,创建canalClient实例,并设置订阅的表和事件,然后定义监听处理逻辑: ```java @SpringBootApplication public class Application implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Autowired private CanalClient canalClient; @Override public void run(String... args) throws Exception { canalClient.subscribe("test\\..*"); canalClient.setEventHandler(event -> { EventType eventType = event.getEventType(); if (eventType == EventType.INSERT || eventType == EventType.UPDATE || eventType == EventType.DELETE) { List<CanalEntry.Column> columns = event.getRowData().getAfterColumnsList(); for (CanalEntry.Column column : columns) { String name = column.getName(); String value = column.getValue(); System.out.println("name=" + name + ", value=" + value); } } }); canalClient.start(); } } ``` 以上代码示例中,canalClient.subscribe()设置订阅的表,canalClient.setEventHandler()定义监听处理逻辑,并在canalClient.start()时启动监听。 最后,在启动应用后,可以通过MySQL的据变更来触发监听处理逻辑。例如,对test据库的test_table表进行更新: ```sql UPDATE test_table SET name='new_name' WHERE id=1; ``` 此时,console中就会输出监听处理结果: ``` name=id, value=1 name=name, value=new_name name=age, value=20 ``` 通过以上整合示例,可以看到canal和Spring整合的过程非常简单,但却可以实现高效、可靠的据订阅、同步和处理,为企业应用开发提供了强大的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值