Kafka消息队列在Debian上的配置技巧

900
2025/3/14 6:32:06
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian上配置Kafka消息队列时,可以参考以下步骤和技巧:

安装Kafka

  1. 安装Java运行环境: Kafka是用Java编写的,因此需要先安装Java运行环境。

    sudo apt update
    sudo apt install openjdk-8-jdk
    

    安装完成后,验证Java版本:

    java -version
    
  2. 下载并解压Kafka: 可以从Apache Kafka官网下载最新版本的Kafka安装包,然后解压到指定目录。

    wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
    tar -xzf kafka_2.12-3.5.2.tgz
    cd kafka_2.12-3.5.2
    
  3. 配置环境变量: 编辑/etc/profile文件,添加以下两行命令以配置全局环境变量:

    export KAFKA_HOME=/path/to/kafka_2.12-3.5.2
    export PATH=$PATH:$KAFKA_HOME/bin
    

    使配置生效:

    source /etc/profile
    

配置Kafka

  1. 创建Kafka主题: 使用以下命令创建一个新的Kafka主题:

    ./kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
    
  2. 启动Kafka服务器: 在Kafka目录下启动Kafka服务器:

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

配置技巧

  1. 保证顺序消费

    • 使用相同的partition键将有序消息写入同一个partition。
    • 消费者按照相同的顺序消费partition内的消息。
  2. 处理顺序消息失败

    • 消费者在失败后立即重试3-5次。
    • 失败消息保存到重试表,后续消息优先处理重试表中的消息。
  3. 优化消息积压

    • 消息体只包含关键信息,减少IO次数。
    • 增加partition数量或使用多线程处理。
  4. 处理主键冲突

    • 使用数据库的on duplicate key update语法。
    • 使用分布式锁(如Redis)时注意性能和网络超时问题。
  5. 配置消费者组

    • 消费者组内的消费者分工合作,避免单个消费者过载。
  6. 选择合适的消费模式

    • Kafka默认提供的是“至少一次”消费模式(At least once),可以避免消息丢失,但可能会重复。
    • 如果需要精确传递一次(Exactly once),需要消息系统本身和应用的协作实现。

参考资料

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Sedebian如何管理用户权限