Kafka

  1. 安装ZooKeeper。 可以参考https://blog.youkuaiyun.com/zhangningkid/article/details/100518073

  2. 修改ZooKeeper中的bin/zkServer.sh文件,添加ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}",如下图,然后启动zookeeper。在这里插入图片描述

  3. 官方网站下载kafka, http://kafka.apache.org/downloads
    在这里插入图片描述

  4. 上传至Linux服务器中并解压

tar -zxf ./kafka_2.12-2.4.0.tgz
  1. 更改kafka的配置文件 config/server.properties
# broker的id号,只能是数值类型,要求同一个集群中的broker.id必须唯一。
broker.id=0
# 不允许自动创建主题,生产环境上建议关闭。
auto.create.topics.enable=false
#kafka的socket监听地址,改成自己的ip和端口即可。
listeners=PLAINTEXT://192.168.182.128:9092
#kafka的数据存放路径,不建议放在tmp目录下
log.dirs=/tmp/kafka-logs
#kafka中每个主题的默认分区数量,数量越大,平行消费的能力就越强。建议设置成kakfa集群中机器的台数的倍数。
num.partitions=1
#每个topic默认的副本分片的数量
default.replication.factor=3
#zookeeper的连接地址,多个用逗号隔开
zookeeper.connect=192.168.182.128:2181,192.168.182.129:2181,192.168.182.130:2181
#log file中数据保存的小时数
log.retention.hours=72
  1. 更改bin/kafka-run-class.sh脚本,增加配置-Djava.rmi.server.hostname=192.168.0.1,指定当前kafka机器的ip, 便于启动kafka的JMX服务,如下:
#JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; then
  KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=192.168.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxrem
ote.ssl=false "
fi

更改bin/kafka-server-start.sh中找到堆设置,添加-Dcom.sun.management.jmxremote.rmi.port=9999export JMX_PORT="9999"
以及时区和服务启动标识: -Duser.timezone=UTC+0000, -server

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Duser.timezone=UTC+0000 -server -Xmx1G -Xms1G -Dcom.sun.management.jmxremote.rmi.port=9999"
    export JMX_PORT="9999"
fi
  1. 启动集群中所有的kafka
./kafka-server-start.sh ../config/server.properties

后台启动

./kafka-server-start.sh -daemon ../config/server.properties
### Kafka入门教程及使用场景 #### 一、Kafka简介 Apache Kafka 是一种分布式流处理平台,能够实现高吞吐量的消息传递系统。它最初由 LinkedIn 开发并开源,现已成为 Apache 软件基金会的一部分[^1]。 #### 二、Kafka的安装与配置 以下是基于 Docker 的 Kafka 安装方法: ```yaml version: "1" services: kafka: image: 'bitnami/kafka:latest' hostname: kafka ports: - 9092:9092 - 9093:9093 volumes: - 'D:\Docker\Kafka\data:/bitnami/kafka' networks: - kafka_net environment: # KRaft settings - KAFKA_CFG_NODE_ID=0 - KAFKA_CFG_PROCESS_ROLES=controller,broker - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 # Listeners - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.2.51:9092 - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT networks: kafka_net: driver: bridge ``` 运行命令如下: ```bash docker-compose -f .\docker-compose.yml up -d ``` 上述 YAML 文件定义了一个简单的 Kafka 集群环境,并通过 `docker-compose` 启动服务[^1]。 #### 三、Kafka的基础概念 在 Kafka 中,消息被存储在主题(Topic)中,而每个 Topic 又分为若干分区(Partition)。每个分区有一个 Leader 和零个或多个 Follower。Leader 负责读写操作,Follower 则同步数据以提供冗余支持。当创建一个新的 Topic 时,Kafka 自动将 Partition 的 Leader 均匀分布到各个 Broker 上,从而提高系统的可靠性和性能[^2]。 #### 四、可视化管理工具 Offset Explorer 是一款常用的 Kafka 数据管理和监控工具,可以帮助开发者更直观地查看和分析 Kafka 主题中的偏移量和其他元数据信息[^1]。 #### 五、Kafka的主要使用场景 1. **日志收集**:Kafka 可用于集中式日志采集方案,实时捕获来自不同服务器的日志文件。 2. **消息队列**:作为传统 MQ 替代品,Kafka 提供高性能异步通信机制。 3. **活动跟踪**:记录用户的在线行为轨迹,便于后续数据分析挖掘价值。 4. **指标监测**:构建企业级运营状态仪表盘,展示关键业务指标变化趋势。 5. **ETL流程优化**:连接多种数据库之间复杂的数据转换过程,提升效率减少延迟。 #### 六、总结 通过对 Kafka 的基本原理理解及其实际应用场景探讨,可以更好地掌握如何利用这一强大技术解决现实世界中的挑战性问题。 问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值