centos7安装kafka及简单使用

【启动kafka前,需要调整这个配置文件(/opt/kafka-2.1.0/config/server.properties)的一处ip地址】

因为每次虚拟机的ip地址可能会有所不同,这和所在网络有关,也可将ip固定,这样不需要调整配置文件

安装并使用

  • centos7安装kafka
    • 1.解压
    • 2.修改配置文件
    • 3.创建启动文件
    • 4.启动文件赋予权限
    • 5.直接启动kafka的启动文件即可
    • 6.命令行简单测试
  • 安装kafka-tool客户端
  • java程序调用
    • 生产者
      • pom.xml文件引入依赖
      • application.yml文件配置kafka信息
      • 开发Bean对象,初始化kafka地址,以方便调用
      • controller调用
      • postman测试
    • 消费者

centos7安装kafka

前辈的数据不丢失思想

1.解压

tar -xvf kafka_2.11-2.1.0.tgz
mv kafka_2.11-2.1.0 kafka-2.1.0

2.修改配置文件

cd /opt/kafka-2.1.0/config

【修改server.properties文件】
vim server.properties
修改内容如下:
broker.id=0
#端口号
port=9092
#单机可直接用localhost
host.name=localhost
listeners=PLAINTEXT://192.168.43.196:9092
#日志存放路径
log.dirs=/DATA/kafka/kafka_2.12-2.0.0/log
#zookeeper地址和端口,单机配置部署,localhost:2181
zookeeper.connect=localhost:2181

【修改zookeeper.properties文件】
vim zookeeper.properties
修改内容如下:
#zookeeper数据目录
dataDir=/opt/zookeeper-3.4.8/data
#zookeeper日志目录
dataLogDir=/opt/zookeeper-3.4.8/log
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10

3.创建启动文件

vim kafkaStart.sh

内容如下:
#!/bin/bash
#启动zookeeper
/opt/kafka-2.1.0/bin/zookeeper-server-start.sh /opt/kafka-2.1.0/config/zookeeper.properties &
sleep 3 #默默等3秒后执行
#启动kafka
/opt/kafka-2.1.0/bin/kafka-server-start.sh /opt/kafka-2.1.0/config/server.properties &

4.启动文件赋予权限

chmod +x kafkaStart.sh

5.直接启动kafka的启动文件即可

cd bin
./kafkaStart.sh

6.命令行简单测试

#创建名字为test的topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

#查看topic列表
./kafka-topics.sh --list --zookeeper localhost:2181

#删除名字为test的topic
./kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

#开启两个终端 (生产者)
./kafka-console-producer.sh --broker-list localhost:9092 --topic test

#消费者
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

安装kafka-tool客户端

傻瓜式安装,通过ip进行连接
centos7安装kafka及简单使用_第1张图片

java程序调用

生产者

pom.xml文件引入依赖

<!--kafka-->
<dependency>
	<groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>

application.yml文件配置kafka信息

#kafka推送消息信息配置
kafka:
  #url
  url: 192.168.124.22:9092
  #topic名称
  topic: testKafka
  #发生错误后,消息重发的次数
  retries: 0
  #Broker对producer即将发送来的数据采用何种确认方式
  acks: 1

开发Bean对象,初始化kafka地址,以方便调用

  • MetricsCallBack 回调方法(获取发送消息的结果)
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.RecordMetadata;

/**
 * @Auther: 
 * @Date: 2022/3/27 10:53
 * @Description:
 */
@Slf4j
public abstract class MetricsCallBack implements Callback {
   

    private final long startTime;
    private final String key;
    private final String message;

    /**
     * 有参构造函数
     * @param startTime 消息发送的起始时间
     * @param key 消息键,可为null
     * @param message 消息
     */
    public MetricsCallBack(long startTime,String key,String message){
   
        this.startTime=startTime;
        this.key=key;
        this.message=message;
    }

    @Override
    public void onCompletion(RecordMetadata metadata, Exception exception) {
   
        long cost=System.currentTimeMillis()-startTime;
        if(metadata!=null){
   
            onSendFinish

你可能感兴趣的:(工作中遇到的问题,java,spring,boot,kafka)