Java客户端(canal)
提示:以下是本篇文章正文内容,下面案例可供参考
1.引入库
引入Maven依赖(示例):
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId>canal.client</artifactId>
<version>1.1.4</version>
</dependency>
2.canal客户端代码如下:
代码如下(示例):
package cn.cc.sdsi.canal;
import cn.chinaunicom.sdsi.search.kafka.KafkaProducer;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.google.common.base.CaseFormat;
import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.client.CanalConnectors;
import com.alibaba.otter.canal.protocol.CanalEntry;
import com.alibaba.otter.canal.protocol.Message;
import com.google.protobuf.InvalidProtocolBufferException;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.common.internals.Topic;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import com.alibaba.otter.canal.protocol.Message;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @descriptions: canal
* @author:
* @date: 2021/1/26 10:45
*/
@Slf4j
@Component
@PropertySource("classpath:application-test.yml")
public class CannalClient {
@Resource
private BusinessRouter businessRouter;
@Value("${canal.client.instances.example.batchSize}")
private Integer batchSize;
@Value("${canal.client.instances.example.host}")
private String host;
@Value("${canal.client.instances.example.post}")
private Integer post;
@Value("${canal.client.instances.example.destination}")
private String destination;
@Value("${canal.client.instances.example.username}")
private String username;
@Value("${canal.client.instances.example.password}")
private String password;
public Integer getBatchSize() {
return batchSize;
}
public void setBatchSize