canal项目结构


canal.deployer

	canal.prometheus
	
	canal.server
	
		canal.instance.core	
		canal.instance.spring	
		canal.instance.manager

=======================================================================
canal.example
	canal.client
	canal.protocol

=======================================================================
client-adapter.launcher
	client-adapter.common
	canal.client
	client-adapter.elasticsearch/kafka/rockermq....

在这里插入图片描述
server代表一个canal服务端的运行实例,对应于一个jvm。
instance对应于一个数据队列 (1个server对应1…n个instance)

instance下的子模块:
		
		eventParser (数据源接入,模拟slave协议和master进行交互,协议解析)
		eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作)
		eventStore (数据存储)
		metaManager (增量订阅&消费信息管理器)

这些组件在项目代码中都有对应的子项目与之对应起来。因此我们在看代码的时候就不会迷茫,大概知道其职责与其它项目的关系。

client
该项目是连接canal的服务器接收数据变更的客户端组件包,应用可通过集成该包实现在应用中消费数据通道的变更,比如我们可以在搜索引擎的索引变更应用中集成它,我们还可以在将数据变更事件转化其它MQ消息的应用中集成它。

common
该项目是一个通用模块,它定义了整个canal项目群都可以使用的一些工具类(各种utils),全局的一些抽象接口(比如生命周期),通用技术组件(比如zookeeper的扩展类)和报警组件定义等等。

protocol
项目是通用网络协议模块,涉及到网络传输的项目都可以使用该模块。该模块目前定义了基于protobuf编码格式的网络通讯消息协议。

driver
MySQL协议的驱动程序,实现了MySQL的binlog复制网络协议的一些接口和类。

dbsync
数据库复制包。定义了数据库复制的各种事件的接口及实现类。

filter
该项目是一个事件过滤模块。定义了对于各种消息、事件的一些通用过滤接口及实现。支持的过滤实现包括正则表达式,el表达式,

example
该项目是各种使用场景的示例代码,帮助我们快速上手使用canal。目前主要包含单机模式和集群模式的两种使用场景的示例代码。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值