Kafka单机安装

一、下载安装

首先访问Kafka官网(Apache Kafka)选择版本下载,笔者下载的是 kafka_2.13-2.6.0.tgz 。kafka的运行需要Jdk topic的发布和订阅依赖zookeeper,因此新版kafka安装程序已经将zookeeper整合在一起降低了安装复杂度。下载完成后在服务器上选择一个目录(笔者选择的是/opt目录,此为linux用户级程序目录,相当于D:\program)解压kafka,不须编译只要修改配置文件中的几个必要项后即可运行。

二、配置启动

运行kafka前只需要配置zookeeper.propertiesserver.properties这两个配置文件,进入opt/kafka_2.13-2.6.0/config目录找到二者文件。

(1)配置zookeeper

首先配置zookeeper,使用vi命令仅需要配置dataDir和clientport即可。

  • dataDir=/opt/kafka_2.13-2.6.0/zookeeper-data  # zookeeper 数据目录
  • clientPort=2181 #zookeeper连接端口

(2)配置kafka

在server.properties中需要配置:

  • zookeeper.connect=localhost:2181  # zookeeper地址如未做修改默认即可
  • advertised.listeners=PLAINTEXT://47.104.101.255:9092  #kafka对外提供地址
  • log.dirs=/opt/kafka_2.13-2.6.0/kafka-logs  # 日志目录

(3)启动kafka

启动kafka是有先后顺序的,首先需要启动zookeeper,然后再启动kafka才能正确运行。

  • zookeeper 前台启动命令:bin/zookeeper-server-start.sh config/zookeeper.properties
  • zookeeper 后台启动命令:bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
  • kafka前台启动命令:bin/kafka-server-start.sh config/server.properties
  • kafka后台启动命令:bin/kafka-server-start.sh -daemon config/server.properties

三、测试运行

kafka启动后可通过在线创建生成者和消费者来测试kafka安装是否正确。

(1)创建主题

bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 4 --replication-factor 1

  • --create  # 创建主题
  • --topic  # 后跟主题名称
  • --bootstrap-server  #后跟kafka IP和端口
  • --partitions #分区数
  • --replication-factor #副本数

(2)创建生成者

bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092

  • --topic  # 后跟主题
  • --bootstrap-server  # 后跟kafka IP和端口

(3)创建消费者

bin/kafka-console-consumer.sh --bootstrap-server=localhost:9092 --topic test-topic --consumer-property group.id=test_group1

  • --bootstrap-server  # 后跟kafka IP和端口
  • --topic  # 后跟主题名称
  • --consumer-property group.id  # 消费者组ID,同一组可创建多个消费者,同一条消息只能被消费组中的一个消费者消费

(4)常用命令 

  • 查看主题:bin/kafka-topics.sh --zookeeper localhost:2181 --list
  • 修改分区:bin/kafka-topics.sh --alter --topic test-n --bootstrap-server localhost:9092 --partitions 4
  • 查看分区:bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test-topic
  • 删除主题:bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test-topic (

    server.properties中配置delete.topic.enable=true)

  • 关闭kafka:bin/kafka-server-stop.sh
  • 关闭zookeeper:bin/zookeeper-server-stop.sh

四、集成程序

(1)引入依赖

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

 (2)配置yml

spring:  
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      enable-auto-commit: true
      group-id: test_group1
      auto-offset-reset: latest
    listener:
      concurrency: 10

(3)程序代码

package css.com.cn.tjfx.kafka;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;


@Slf4j
@Component
public class KafkaConsumer {


    @KafkaListener(topics = {"CW_OCEAN_RECORD_CAPTURE_FLOW"})
    public void receive(String message) {
        JSONObject jsonObject = JSON.parseObject(message);
        String deviceId = jsonObject.get("deviceId").toString();
        String deviceName = jsonObject.get("deviceName").toString();
        log.debug("来了一条消息: deviceId=" + deviceId + "deviceName=" + deviceName);
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值