Linux搭建kafak集群 + log4j

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39657597/article/details/80784495

版本信息
zookeeper-3.4.10
kafka_2.11-1.1.0

集群信息
192.168.0.109
192.168.0.108
192.168.0.111

安装kafka集群
1.解压kafka
tar -zxvf kafka_2.11-1.1.0.tgz

2.将解压的kafka拷贝到108,111上
scp -r kafka_2.11-1.1.0 [email protected]:/usr/

3.修改server.properties配置文件
vi config/server.properties
主要有以下几点需要更改:

broker.id=0
listeners=PLAINTEXT://192.168.0.109:9091
#kafka日志存放位置可以为默认
log.dirs=/tmp/kafka-logs
#kafka日志留存时间
log.retention.hours=168
#在指定时间后关闭空闲连接,默认是600000
connections.max.idle.ms=600000
#zookeeper的ip与端口
zookeeper.connect=192.168.0.109:2181,192.168.0.108:2181,192.168.0.111:2181/kafka

参照上面的配置修改其他108,111上的server.properties

4.启动kafka
配置完后分别启动109,108,111上的kafka
启动:bin/kafka-server-start.sh config/server.properties &
关闭:bin/kafka-server-stop.sh config/server.properties
注:启动加&符号是因为我用xshell远程连接服务器,当我断开xshell连接时kafka的访问也关闭了,加上&符号后再启动后可以用exit断开xshell连接,不会影响kafka。

5.创建topic
创建一个名为topic_r3p3,3分区3备份的topic
bin/kafka-topics.sh –create –zookeeper 192.168.0.109:2181/kafka –replication-factor 3 –partitions 3 –topic topic_r3p3
查看所有topic
bin/kafka-topics.sh –list –zookeeper 192.168.0.109:2181/kafka
查看单个topic
bin/kafka-topics.sh –describe –zookeeper 192.168.0.109:2181/kafka –topic topic_r3p3
这里写图片描述
Partition: 分区
Leader : 负责读写指定分区的节点
Replicas : 复制该分区log的节点列表
Isr : “in-sync” replicas,当前活跃的副本列表(是一个子集),并且可能成为Leader
删除topic
bin/kafka-topics.sh –delete –zookeeper 192.168.0.109:2181/kafka –topic topic_r3p3

6.启动Producer和Consumer
在109启动Producer:
bin/kafka-console-producer.sh –broker-list 192.168.0.109:9091,192.168.0.108:9092,192.168.0.111:9093 –topic topic_r3p3
在108启动Consumer:
bin/kafka-console-consumer.sh –zookeeper 192.168.0.109:2181/kafka –from-beginning –topic topic_r3p3

7.验证
在Producer输入你的消息,然后在Consumer查看看到你输入的消息内容,如果接收正常说明你的集群安装成功
Producer:
这里写图片描述
consumer:
这里写图片描述

使用Log4j将程序日志实时写入Kafka
1.引入jar包

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.9.2</artifactId>
    <version>0.8.2.1</version>
</dependency> 

2.log4j.properties:

log4j.rootLogger=INFO,console,kafka

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n

log4j.appender.KAFKA=com.vision.log.MyKafkaLog4jAppender
log4j.appender.KAFKA.topic=topic_r3p3
log4j.appender.KAFKA.brokerList=192.168.0.109:9091,192.168.0.108:9092,192.168.0.111:9093
log4j.appender.KAFKA.compressionType=none
log4j.appender.KAFKA.syncSend=true
log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout
log4j.appender.KAFKA.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.KAFKA.Encoding=utf-8

3.Application.java

import org.apache.log4j.Logger;

public class Application {

    private static final Logger LOGGER = Logger.getLogger(Application.class);

    public static void main(String[] args) throws InterruptedException {
        int inex=1;
        for (int i = inex; i < inex+5; i++) {
            LOGGER.info("Info >" + i + "<");
            Thread.sleep(500);
        }
    }
}

4.验证
运行main方法,控制台结果:
这里写图片描述
Consumer结果:
这里写图片描述
日志:
topic_r3p3-0:
这里写图片描述
topic_r3p3-1:
这里写图片描述topic_r3p3-2:
这里写图片描述
Topic为opic_r3p3的消息有3个partion,日志随机存放

kafka+log4jdemo:https://download.csdn.net/download/qq_39657597/10495053
有需要的可以去下载。

猜你喜欢

转载自blog.csdn.net/qq_39657597/article/details/80784495