mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
rabbitmq(amqp)MQ支持 (#2156)
This commit is contained in:
@@ -69,6 +69,11 @@ public class CanalConstants {
|
||||
public static final String CANAL_MQ_KAFKA_KERBEROS_ENABLE = ROOT + "." + "mq.kafka.kerberos.enable";
|
||||
public static final String CANAL_MQ_KAFKA_KERBEROS_KRB5FILEPATH = ROOT + "." + "mq.kafka.kerberos.krb5FilePath";
|
||||
public static final String CANAL_MQ_KAFKA_KERBEROS_JAASFILEPATH = ROOT + "." + "mq.kafka.kerberos.jaasFilePath";
|
||||
public static final String CANAL_MQ_USERNAME = ROOT + "." + "mq.username";
|
||||
public static final String CANAL_MQ_PASSWORD = ROOT + "." + "mq.password";
|
||||
public static final String CANAL_MQ_VHOST = ROOT + "." + "mq.vhost";
|
||||
public static final String CANAL_MQ_ALIYUN_UID = ROOT + "." + "mq.aliyunuid";
|
||||
public static final String CANAL_MQ_EXCHANGE = ROOT + "." + "mq.exchange";
|
||||
|
||||
public static String getInstanceModeKey(String destination) {
|
||||
return MessageFormat.format(INSTANCE_MODE_TEMPLATE, destination);
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.alibaba.otter.canal.common.MQProperties;
|
||||
import com.alibaba.otter.canal.deployer.admin.CanalAdminController;
|
||||
import com.alibaba.otter.canal.kafka.CanalKafkaProducer;
|
||||
import com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer;
|
||||
import com.alibaba.otter.canal.rabbitmq.CanalRabbitMQProducer;
|
||||
import com.alibaba.otter.canal.server.CanalMQStarter;
|
||||
import com.alibaba.otter.canal.spi.CanalMQProducer;
|
||||
|
||||
@@ -64,6 +65,8 @@ public class CanalStarter {
|
||||
canalMQProducer = new CanalKafkaProducer();
|
||||
} else if (serverMode.equalsIgnoreCase("rocketmq")) {
|
||||
canalMQProducer = new CanalRocketMQProducer();
|
||||
} else if (serverMode.equalsIgnoreCase("rabbitmq")) {
|
||||
canalMQProducer = new CanalRabbitMQProducer();
|
||||
}
|
||||
|
||||
if (canalMQProducer != null) {
|
||||
@@ -260,6 +263,31 @@ public class CanalStarter {
|
||||
mqProperties.setKerberosJaasFilePath(kafkaKerberosJaasFilepath);
|
||||
}
|
||||
|
||||
String vhost = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_VHOST);
|
||||
if (!StringUtils.isEmpty(vhost)) {
|
||||
mqProperties.setVhost(vhost);
|
||||
}
|
||||
|
||||
String username = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_USERNAME);
|
||||
if (!StringUtils.isEmpty(username)) {
|
||||
mqProperties.setUsername(username);
|
||||
}
|
||||
|
||||
String password = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_PASSWORD);
|
||||
if (!StringUtils.isEmpty(password)) {
|
||||
mqProperties.setPassword(password);
|
||||
}
|
||||
|
||||
String aliyunUID = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_ALIYUN_UID);
|
||||
if (!StringUtils.isEmpty(aliyunUID)) {
|
||||
mqProperties.setAliyunUID(Long.valueOf(aliyunUID));
|
||||
}
|
||||
|
||||
String exchange = CanalController.getProperty(properties, CanalConstants.CANAL_MQ_EXCHANGE);
|
||||
if (!StringUtils.isEmpty(exchange)) {
|
||||
mqProperties.setExchange(exchange);
|
||||
}
|
||||
|
||||
for (Object key : properties.keySet()) {
|
||||
key = StringUtils.trim(key.toString());
|
||||
if (((String) key).startsWith(CanalConstants.CANAL_MQ_PROPERTIES)) {
|
||||
|
||||
@@ -130,6 +130,11 @@ canal.mq.producerGroup = test
|
||||
canal.mq.accessChannel = local
|
||||
# aliyun mq namespace
|
||||
#canal.mq.namespace =
|
||||
canal.mq.vhost=
|
||||
canal.mq.exchange=
|
||||
canal.mq.username=
|
||||
canal.mq.password=
|
||||
canal.mq.aliyunuid=
|
||||
|
||||
##################################################
|
||||
######### Kafka Kerberos Info #############
|
||||
|
||||
@@ -77,7 +77,10 @@
|
||||
<level value="INFO" />
|
||||
<appender-ref ref="CANAL-ROOT" />
|
||||
</logger>
|
||||
|
||||
<logger name="com.alibaba.otter.canal.rabbitmq" additivity="false">
|
||||
<level value="INFO" />
|
||||
<appender-ref ref="CANAL-ROOT" />
|
||||
</logger>
|
||||
<root level="WARN">
|
||||
<!-- <appender-ref ref="STDOUT"/> -->
|
||||
<appender-ref ref="CANAL-ROOT" />
|
||||
|
||||
Reference in New Issue
Block a user