问题导读
1.如何安装Kafka?
2.如何在SpringBoot项目中整合Kafka?
3.如何启动Spring Boot的消费者?
一、 Kafka服务搭建
1、安装kafka:
从官网下载kafka的压缩包:http://kafka.apache.org/downloads(注意kafka版本与JDK版本一致;我用的版本kafka_2.11-0.9.0.0;JDK 1.7)
解压下载的压缩包(我解压到了G盘根目录)
2、启动kafka服务(windows下)
可不修改配置,以默认配置启动
1)首先启动zookeeper服务
在kafka下已有zookeeper
[mw_shl_code=shell,true]bin\windows\zookeeper-server-start.bat config\zookeeper.properties[/mw_shl_code]
2)启动kafka服务
[mw_shl_code=shell,true]bin\windows\kafka-server-start.bat config\server.properties[/mw_shl_code]
3)创建topic
[mw_shl_code=shell,true]bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test [/mw_shl_code]
(test为topic名称)
4、可以查看创建topic
[mw_shl_code=shell,true]bin\windows\kafka-topics.bat --list --zookeeper localhost:2181[/mw_shl_code]
5) 启动生产者 producer
[mw_shl_code=shell,true]bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test[/mw_shl_code]
(test为topic名称)
6、启动消费者 customer
[mw_shl_code=shell,true]bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic test --from-beginning[/mw_shl_code]
二、 SpringBoot整合kafka
1、SpringBoot项目并添加kafka依赖
[mw_shl_code=xml,true]<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>[/mw_shl_code]
注意版本,需和所安装kafka版本对应,以及SpringBoot版本
2、SpringBoot整合log4j2
添加依赖
[mw_shl_code=xml,true]<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>[/mw_shl_code]
去除SpringBoot自带日志
[mw_shl_code=xml,true]<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>[/mw_shl_code]
在application.yml中配置log4j2的配置文件路径
[mw_shl_code=xml,true]logging:
config: classpath:log4j-spring-kafka.xml[/mw_shl_code]
配置log4j2:
[mw_shl_code=xml,true]<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,
你会看到log4j2内部各种详细输出。可以设置成OFF(关闭)或Error(只输出错误信息) -->
<Configuration status="OFF">
<Appenders>
<!-- 输出控制台日志的配置 -->
<Console name="console" target="SYSTEM_OUT">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="DEBUG" />
<!-- 输出日志的格式 -->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!--<Kafka name="Kafka" topic="test">
<PatternLayout pattern="%date %message"/>
<Property name="bootstrap.servers">localhost:9092</Property>
</Kafka>-->
</Appenders>
<Loggers>
<Root level="ALL">
<!-- <AppenderRef ref="Kafka"/>-->
<AppenderRef ref="console"/>
</Root>
<!-- <Logger name="org.apache.kafka" level="INFO" />--> <!-- avoid recursive logging -->
<logger name="org.springframework" level="INFO"/>
</Loggers>
</Configuration>[/mw_shl_code]
其中kafka标签中topic为自己所创建的topic名称,其下的
localhost:9092为kafka服务的IP:端口
三、 启动流程
- 启动zookeeper
- 启动kafka(首次启动创建一个topic)
- 启动消费者 customer(用于观察日志收集情况)
- 启动SpringBoot工程(注:配置topic为自己所创建的topic)
- 可在消费者 customer观测到项目日志
最新经典文章,欢迎关注公众号
来源:CSDN 作者:qwuyuan 原文:《springboot集成kafka日志收集》 https://blog.csdn.net/qwuyuan/article/details/101208868
|