kafka的基础使用(安装)

Apache Kafka是一款高性能的消息中间件,具备高吞吐量、低延迟、可扩展性和容错性。常用于日志收集、消息系统、用户活动跟踪、运营指标监控及流式处理等场景。Kafka借助Zookeeper集群进行管理,支持集群扩展和数据持久化。配置时,需设置broker.id、log.dirs和zookeeper.connect等参数。启动和停止Kafka服务,以及创建、删除和管理主题,都有相应的命令行工具。此外,Kafka提供生产者和消费者的命令行工具,方便消息的生产和消费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述: 作用

一、Kafka的优势如下:

  • 削峰: 防止数据在高峰期生产太快,来不及消费, 造成数据丢失,节点崩溃

  • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;

  • 可扩展性:kafka集群支持热扩展;

  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失;

  • 容错性: 允许集群中节点故障(若副本数量为n,则允许n-1个节点故障);

  • 高并发: 支持数千个客户端同时读写。

二、Kafka适合以下应用场景:

  • 日志收集: 一 个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer;

  • 消息系统:解耦生产者和消费者、缓存消息等;

  • 用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后消费者通过订阅这些topic来做实时的监控分析,亦可保存到数据库;

  • 运营指标: kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;

  • 流式处理: 比如spark streaming和storm。

下载:

kafka的官网:kafka官网地址

先到官方网站下载相关tgz包

然后进行解压安装,将安装好的文件进行修改

来到kafka目录:
mkdir data #创建一个data 文件,存放消息队列中的数据
修改server.properties 文件
vim config/server.properties

  # 修改broker的id, 这个数字必须是一个整型且唯一的
  broker.id=0 
  # kafka 运行日志存放的路径
  log.dirs=/opt/module/kafka/logs
  # 配置zookeeper 集群
  zookeeper.connect=hadoop202:2181,hadoop203:2181,hadoop204:2181 

注: 到这里kafka的集群配置就完成了, 因为kafka是需要借助zookeeper集群来进行的,所以要使用的话,需要先进行开启zookeeper集群

开启kafka在每一台机器上我这里就直接配置脚本开启了:

case $1 in
"start")
for  kk  in hadoop202 hadoop203 hadoop204
do
   echo  ==========$kk:kafka启动=======
   ssh  $kk  "/opt/module/kafka/bin/kafka-server-start.sh  -daemon  /opt/module/kafka/config/server.properties"
done
;;
"stop")

for  kk  in hadoop202 hadoop203 hadoop204
do
   echo  ==========$kk:kafka关闭=======
   ssh  $kk  "/opt/module/kafka/bin/kafka-server-stop.sh"
done
;;
"*")
  echo "请输入正确的参数start/stop!"
;;
esac

单个开启:

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

单个关闭:

bin/kafka-server-stop.sh

创建主题,删除

创建: bin/kafka-topics.sh --zookeeper hadoop202:2181 --create --replication-factor 3 --partitions 1 --topic first
删除: bin/kafka-topics.sh --zookeeper hadoop202:2181 --delete --topic first
查看全部: bin/kafka-topics.sh --zookeeper hadoop202:2181 --list
查看某个主题的详情: bin/kafka-topics.sh --zookeeper hadoop202:2181 --describe
–topic first

生产者和消费者:

生产者:
bin/kafka-console-producer.sh --broker-list hadoop202:9092 --topic first
消费者:
(推荐使用第二种,9.0版本之前使用的是将offset存储到zookeeper上,这就需要消费者 需要与zookeeper经常进行通讯,后面版本就使用了将offset存储在topic上)
bin/kafka-console-consumer.sh --zookeeper hadoop202:2181 --topic first bin/kafka-console-consumer.sh --bootstrap-server hadoop202:9092 --topic first
指定消费的配置
bin/kafka-console-consumer.sh --bootstrap-server hadoop202: 9092 --topic first --consumer.config config/consumer.properties (指定具体的消费配置文件,不指定的话,会随机给一个组名)

加上–from-beginning从头开始重新读取数据

注:

  1. offset0.9版本之前存储zookeeper, 但是由于需要消费者频繁的与zookeeper做交互,在0.9及之后,将offset存储在了topic中
  2. 上面所作的操作命令,不管是bootstrap-list也好,还是zookeeper 也罢,所连接的服务器哪一个都行,因为zookeeper和 kafka都是以集群工作的,之间都会有通信(但是在实际的环境下,最好还是都进行连接一下, 因为可能出现我们去连接的那一个机器出现异常问题宕机)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值