1)Kafka概述、集群部署、命令行操作

概述:
  • Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。

  • Kafka架构图:

    • 详解:
      1)Producer :消息生产者,就是向kafka broker发消息的客户端
      2)Consumer :消息消费者,向kafka broker取消息的客户端
      3)Topic :可以理解为一个队列
      4) Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的 consumer)和单播(发给任意一个consumer)的手段
      5)Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic
      6)Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序
      7)Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。当然the first offset就是00000000000.kafka
Kafka集群部署
  • 解压安装包:
    tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/
  • 解压后修改文件名称:
    mv kafka_2.11-0.11.0.0/ kafka
  • 在/opt/module/kafka目录下创建logs文件夹:mkdir logs
  • 修改配置文件 :
    vi config/server.properties
    输入以下内容:
#broker的全局唯一编号,不能重复
broker.id=0
#删除topic功能使能
delete.topic.enable=true
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘IO的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka运行日志存放的路径 
log.dirs=/opt/module/kafka/logs
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址
zookeeper.connect=hd101:2181,hd102:2181,hd103:2181
  • 配置环境变量:sudo vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
  • 分发安装包和profile文件:xsync kafka /etc/profile
  • 分别在hd102和hd103上修改配置文件/opt/module/kafka/config/server.properties中的broker.id= 1、broker.id = 2;
  • 启动集群:
    [zy@hd101 kafka]$ bin/kafka-server-start.sh config/server.properties &
    [zy@hd102 kafka]$ bin/kafka-server-start.sh config/server.properties &
    [zy@hd103 kafka]$ bin/kafka-server-start.sh config/server.properties &
  • 关闭集群:
    [zy@hd101 kafka]$ bin/kafka-server-stop.sh stop
    [zy@hd102 kafka]$ bin/kafka-server-stop.sh stop
    [zy@hd103 kafka]$ bin/kafka-server-stop.sh stop
命令行操作
  • 查看当前服务器中的所有topic
    [zy@hd101 kafka]$ bin/kafka-topics.sh --zookeeper hd101:2181 --list
  • 创建topic
    [zy@hd101 kafka]$ bin/kafka-topics.sh --zookeeper hd101:2181 --create --replication-factor 3 --partitions 1 --topic first
  • 删除topic
    [zy@hd101 kafka]$ bin/kafka-topics.sh --zookeeper hd101:2181 --delete --topic first
    //需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启
  • 发送消息
    [zy@hd101 kafka]$ bin/kafka-console-producer.sh --broker-list hd101:9092 --topic first
  • 消费消息
    [zy@hd101 kafka]$ bin/kafka-console-consumer.sh --zookeeper hd101:2181 --from-beginning --topic first
    //--from-beginning:会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置
  • 查看某个Topic的详情
    [zy@hd101 kafka]$ bin/kafka-console-consumer.sh --zookeeper hd101:2181 --describe --topic first
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值