支持定义rocketmq client日志路径,及修复一些bug (#3229)

* 修复接入阿里云RocketMq no route info for this topic 问题

* 支持deployer同步rocketmq时定义rocketmq client日志路径

* 支持deployer同步rocketmq时定义rocketmq client日志路径

* 回退guava版本号,解决adapter的java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()异常

* 解决adapter启动报com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource异常。

* 支持rocketmq client 配置日志路径

Co-authored-by: hai.yu <hai.yu@snowballtech.com>
Co-authored-by: agapple <jianghang.loujh@alibaba-inc.com>
This commit is contained in:
Treeyh
2022-05-13 14:39:29 +08:00
committed by GitHub
parent 591126ee6b
commit 885f05fb6a
5 changed files with 143 additions and 96 deletions

View File

@@ -13,6 +13,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
public class CanalAdapterApplication { public class CanalAdapterApplication {
public static void main(String[] args) { public static void main(String[] args) {
// 支持rocketmq client 配置日志路径
System.setProperty("rocketmq.client.logUseSlf4j","true");
SpringApplication application = new SpringApplication(CanalAdapterApplication.class); SpringApplication application = new SpringApplication(CanalAdapterApplication.class);
application.setBannerMode(Banner.Mode.OFF); application.setBannerMode(Banner.Mode.OFF);

View File

@@ -34,6 +34,23 @@
</sift> </sift>
</appender> </appender>
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>../logs/rocketmq_client/rocketmq_client.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>../logs/rocketmq_client/%d{yyyy-MM-dd}/rocketmq_client-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>512MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.alibaba.otter.canal.client.adapter.hbase" additivity="false"> <logger name="com.alibaba.otter.canal.client.adapter.hbase" additivity="false">
<level value="DEBUG" /> <level value="DEBUG" />
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
@@ -54,6 +71,10 @@
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<appender-ref ref="CANAL-ROOT" /> <appender-ref ref="CANAL-ROOT" />
</logger> </logger>
<logger name="RocketmqClient" additivity="false">
<level value="INFO" />
<appender-ref ref="RocketmqClientAppender" />
</logger>
<root level="INFO"> <root level="INFO">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>

View File

@@ -36,6 +36,9 @@ public class CanalLauncher {
logger.info("## set default uncaught exception handler"); logger.info("## set default uncaught exception handler");
setGlobalUncaughtExceptionHandler(); setGlobalUncaughtExceptionHandler();
// 支持rocketmq client 配置日志路径
System.setProperty("rocketmq.client.logUseSlf4j","true");
logger.info("## load canal configurations"); logger.info("## load canal configurations");
String conf = System.getProperty("canal.conf", "classpath:canal.properties"); String conf = System.getProperty("canal.conf", "classpath:canal.properties");
Properties properties = new Properties(); Properties properties = new Properties();

View File

@@ -1,96 +1,117 @@
<configuration scan="true" scanPeriod=" 5 seconds"> <configuration scan="true" scanPeriod=" 5 seconds">
<jmxConfigurator /> <jmxConfigurator />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
<appender name="CANAL-ROOT" class="ch.qos.logback.classic.sift.SiftingAppender"> <appender name="CANAL-ROOT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator> <discriminator>
<Key>destination</Key> <Key>destination</Key>
<DefaultValue>canal</DefaultValue> <DefaultValue>canal</DefaultValue>
</discriminator> </discriminator>
<sift> <sift>
<appender name="FILE-${destination}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE-${destination}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>../logs/${destination}/${destination}.log</File> <File>../logs/${destination}/${destination}.log</File>
<rollingPolicy <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily --> <!-- rollover daily -->
<fileNamePattern>../logs/${destination}/%d{yyyy-MM-dd}/${destination}-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern> <fileNamePattern>../logs/${destination}/%d{yyyy-MM-dd}/${destination}-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB --> <!-- or whenever the file size reaches 100MB -->
<maxFileSize>512MB</maxFileSize> <maxFileSize>512MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy> </timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern> <pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
</sift> </sift>
</appender> </appender>
<appender name="CANAL-META" class="ch.qos.logback.classic.sift.SiftingAppender"> <appender name="CANAL-META" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator> <discriminator>
<Key>destination</Key> <Key>destination</Key>
<DefaultValue>canal</DefaultValue> <DefaultValue>canal</DefaultValue>
</discriminator> </discriminator>
<sift> <sift>
<appender name="META-FILE-${destination}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="META-FILE-${destination}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>../logs/${destination}/meta.log</File> <File>../logs/${destination}/meta.log</File>
<rollingPolicy <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily --> <!-- rollover daily -->
<fileNamePattern>../logs/${destination}/%d{yyyy-MM-dd}/meta-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern> <fileNamePattern>../logs/${destination}/%d{yyyy-MM-dd}/meta-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB --> <!-- or whenever the file size reaches 100MB -->
<maxFileSize>32MB</maxFileSize> <maxFileSize>32MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy> </timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern> <pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
</sift> </sift>
</appender> </appender>
<logger name="com.alibaba.otter.canal.instance" additivity="false"> <appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<level value="INFO" /> <file>../logs/rocketmq_client/rocketmq_client.log</file>
<appender-ref ref="CANAL-ROOT" /> <rollingPolicy
</logger> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<logger name="com.alibaba.otter.canal.deployer" additivity="false"> <!-- rollover daily -->
<level value="INFO" /> <fileNamePattern>../logs/rocketmq_client/%d{yyyy-MM-dd}/rocketmq_client-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<appender-ref ref="CANAL-ROOT" /> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
</logger> <!-- or whenever the file size reaches 100MB -->
<logger name="com.alibaba.otter.canal.meta.FileMixedMetaManager" additivity="false"> <maxFileSize>512MB</maxFileSize>
<level value="INFO" /> </timeBasedFileNamingAndTriggeringPolicy>
<appender-ref ref="CANAL-META" /> <maxHistory>60</maxHistory>
</logger> </rollingPolicy>
<logger name="com.alibaba.otter.canal.connector.kafka" additivity="false"> <encoder charset="UTF-8">
<level value="INFO" /> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n</pattern>
<appender-ref ref="CANAL-ROOT" /> </encoder>
</logger> </appender>
<logger name="com.alibaba.otter.canal.connector.rocketmq" additivity="false">
<level value="INFO" /> <logger name="com.alibaba.otter.canal.instance" additivity="false">
<appender-ref ref="CANAL-ROOT" /> <level value="INFO" />
</logger> <appender-ref ref="CANAL-ROOT" />
<logger name="com.alibaba.otter.canal.connector.rabbitmq" additivity="false"> </logger>
<level value="INFO" /> <logger name="com.alibaba.otter.canal.deployer" additivity="false">
<appender-ref ref="CANAL-ROOT" /> <level value="INFO" />
</logger> <appender-ref ref="CANAL-ROOT" />
<logger name="com.alibaba.otter.canal.connector.pulsarmq" additivity="false"> </logger>
<level value="INFO" /> <logger name="com.alibaba.otter.canal.meta.FileMixedMetaManager" additivity="false">
<appender-ref ref="CANAL-ROOT" /> <level value="INFO" />
</logger> <appender-ref ref="CANAL-META" />
<root level="WARN"> </logger>
<!-- <appender-ref ref="STDOUT"/> --> <logger name="com.alibaba.otter.canal.connector.kafka" additivity="false">
<appender-ref ref="CANAL-ROOT" /> <level value="INFO" />
</root> <appender-ref ref="CANAL-ROOT" />
</logger>
<logger name="com.alibaba.otter.canal.connector.rocketmq" additivity="false">
<level value="INFO" />
<appender-ref ref="CANAL-ROOT" />
</logger>
<logger name="com.alibaba.otter.canal.connector.rabbitmq" additivity="false">
<level value="INFO" />
<appender-ref ref="CANAL-ROOT" />
</logger>
<logger name="RocketmqClient" additivity="false">
<level value="INFO" />
<appender-ref ref="RocketmqClientAppender" />
</logger>
<logger name="com.alibaba.otter.canal.connector.pulsarmq" additivity="false">
<level value="INFO" />
<appender-ref ref="CANAL-ROOT" />
</logger>
<root level="WARN">
<!-- <appender-ref ref="STDOUT"/> -->
<appender-ref ref="CANAL-ROOT" />
</root>
</configuration> </configuration>

View File

@@ -226,7 +226,7 @@
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
<version>22.0</version> <version>18.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.googlecode.aviator</groupId> <groupId>com.googlecode.aviator</groupId>