系列博客链接 http://know.himygirl.cn/topic/kafka/logback-to-kafka/
整合logback收集日志到kafka
简述
本示例旨在快速整合kafka的使用,调参,优化,压测性能等操作;不建议直接作为生产使用,配置化,异常容错等等待处理;
比如:容错机制
- 如果kafka服务宕机,输出到本地文件,可用其他方式重新load数据记录;
- 也可直接用kafka客户端写入到kafka中,手动针对异常做容错(如,写入文件)
环境:
框架 | 版本或描述 |
---|---|
spring-boot | 1.5.18.RELEASE |
kafka-clients | 0.10.1.1 |
注意:
分支支持的版本,技术文档更新,版本的对应关系,开始示例前确保kafka服务已启动等
建议所有代理> = 0.10.xx的用户(以及所有spring boot 1.5.x用户)使用spring-kafka版本1.3.x或更高版本
Spring Boot 1.5(EOL)用户应使用1.3.x(Boot依赖管理默认情况下将使用1.1.x,因此应予以覆盖)。
Spring Boot 2.1(EOL)用户应使用2.2.x(引导依赖性管理将使用正确的版本)。
Spring Boot 2.2用户应使用2.3.x(引导依赖性管理将使用正确的版本)或将版本覆盖为2.4.x)。
Spring Boot 2.3用户应使用2.5.x(引导依赖项管理将使用正确的版本)。
Spring Boot 2.4用户应该使用2.6.x(Boot依赖管理将使用正确的版本)
Get Started
- 1.pom依赖
- 2.logback.xml配置
- 3.自定义KafkaAppender
- 4.测试代码
1.kafka相关pom依赖:(0.10.1.1版本)
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.client.version}</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>${kafka.client.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
sl4j依赖,自行选择;此处整合springboot,未单独引入
2.logback的配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="logs" />
<property name="SYS_NAME" value="system" />