1. 程式人生 > >kafka在linux下安裝教程及其消費者專案開發搭建教程

kafka在linux下安裝教程及其消費者專案開發搭建教程

1.下載kafka的 沒有的可以到我百度網盤下載

2.下載的檔案上傳至linux系統下面新建在根目錄新建個資料夾下面(JDK別忘記安裝)

cd / --進入根目錄
mkdir kafka --建立kafka目錄
cd kafka --進入kafka目錄

3.解壓kafka檔案

tar -zxf kafka_2.11-2.0.0.tgz --解壓安裝

4.進入目錄下面新建 zookeeper 資料存放目錄(如果外部zookeeper可以忽略本步驟)和建立kafka日誌檔案目錄

mkdir zdata --建立zookeeper存放資料目錄
mkdir logs --建立kafka日誌存放目錄

5.修改zookeeper配置檔案資訊

cd kafka_2.11-2.0.0/config/ --進入目錄
vim zookeeper.properties --修改配置檔案資訊

紅框中改成步驟4所建立的目錄路徑

6.修改kafka配置檔案

vim server.properties 

log.dirs=/kafka/logs 日誌存放路徑
port=9092 埠
host.name=192.168.163.131 IP地址

zookeeper.connect=localhost:2181 zookeeper的地址本機的就localhost 其他伺服器的用IP加埠就可以了

7.啟動zookeeper服務

cd kafka_2.11-2.0.0/ --進入目錄
bin/zookeeper-server-start.sh config/zookeeper.properties --啟動服務

8.啟動kafka服務

bin/kafka-server-start.sh config/server.properties

9.下面就是建立topic  名為test

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test

10.啟動生產主體

bin/kafka-console-producer.sh --broker-list 192.168.163.131:9092 --topic test

寫內容回車就可以傳送資訊了。

好了上面安裝講完了,下面開始說下消費者專案搭建

專案採用的是springboot

1.在pom.xml加入引用

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

2.在application.yml 檔案中加上

spring:
  kafka:
    consumer:
      enable-auto-commit: true
      group-id: applog
      auto-offset-reset: latest
      bootstrap-servers: 192.168.163.131:9092 //kafka的地址

3.建立個監聽類

package com.netintech.kafka.utils;
import com.netintech.kafka.bean.Test;
import com.netintech.kafka.mapper.TestRepository;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

@Component
public class Listener {
   
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @KafkaListener(topics = {"test"})
    public void receive(String message){
        System.out.println("test1--消費訊息:" + message);
       
    }
   
}

啟動專案開始測試 

在伺服器使用生產者傳送訊息