分享

springboot集成kafka日志收集

问题导读


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]
   20190923153816286.png
2)启动kafka服务
[mw_shl_code=shell,true]bin\windows\kafka-server-start.bat config\server.properties[/mw_shl_code]
20190923153829351.png
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]
2019092315390564.png
(test为topic名称)

4、可以查看创建topic
[mw_shl_code=shell,true]bin\windows\kafka-topics.bat --list --zookeeper localhost:2181[/mw_shl_code]
20190923153919681.png

5) 启动生产者 producer
[mw_shl_code=shell,true]bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test[/mw_shl_code]
20190923153930149.png
(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]
20190923153942421.png

二、 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


本帖被以下淘专辑推荐:

已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条