
com.lmaye.cloud.starter.canal.client.ZookeeperClusterCanalClient Maven / Gradle / Ivy
package com.lmaye.cloud.starter.canal.client;
import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.client.CanalConnectors;
import com.lmaye.cloud.starter.canal.handler.MessageHandler;
import org.apache.commons.lang.StringUtils;
import java.util.concurrent.TimeUnit;
/**
* -- ZookeeperClusterCanalClient
*
* @author Lmay Zhou
* @date 2021/3/22 11:27
* @email [email protected]
*/
public class ZookeeperClusterCanalClient extends AbstractCanalClient {
public static Builder builder() {
return Builder.builder();
}
public static final class Builder {
/**
* 是否开启
*/
private Boolean enable;
private String filter = StringUtils.EMPTY;
private Integer batchSize = 1;
private Long timeout = 1L;
private TimeUnit unit = TimeUnit.SECONDS;
private String zkServers;
private String destination;
private String userName;
private String password;
private MessageHandler messageHandler;
private Builder() {
}
public static Builder builder() {
return new Builder();
}
public Builder enable(boolean enable) {
this.enable = enable;
return this;
}
public Builder zkServers(String zkServers) {
this.zkServers = zkServers;
return this;
}
public Builder destination(String destination) {
this.destination = destination;
return this;
}
public Builder userName(String userName) {
this.userName = userName;
return this;
}
public Builder password(String password) {
this.password = password;
return this;
}
public Builder filter(String filter) {
this.filter = filter;
return this;
}
public Builder batchSize(Integer batchSize) {
this.batchSize = batchSize;
return this;
}
public Builder timeout(Long timeout) {
this.timeout = timeout;
return this;
}
public Builder unit(TimeUnit unit) {
this.unit = unit;
return this;
}
public Builder messageHandler(MessageHandler messageHandler) {
this.messageHandler = messageHandler;
return this;
}
public ZookeeperClusterCanalClient build() {
CanalConnector connector = CanalConnectors.newClusterConnector(zkServers, destination, userName, password);
ZookeeperClusterCanalClient zookeeperClusterCanalClient = new ZookeeperClusterCanalClient();
zookeeperClusterCanalClient.enable = this.enable;
zookeeperClusterCanalClient.setMessageHandler(messageHandler);
zookeeperClusterCanalClient.setConnector(connector);
zookeeperClusterCanalClient.filter = this.filter;
zookeeperClusterCanalClient.unit = this.unit;
zookeeperClusterCanalClient.batchSize = this.batchSize;
zookeeperClusterCanalClient.timeout = this.timeout;
return zookeeperClusterCanalClient;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy