章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

  • windows

  • 中间件

    • nginx

    • kafka

      • kafka介绍和常见操作
        • 1.应用场景方面
        • 2.架构模型方面
        • 3.吞吐量方面
        • 4.集群负载均衡方面
        • 5.kafka常见操作
      • docker-compose安装kafka集群
      • kafka工作原理
    • rabbitmq

    • centos7.9部署keepalived
    • 应用性能监控-skywalking
  • 网络

  • 安全

  • 存储

  • 防火墙

  • 数据库

  • 系统

  • docker

  • other

  • 监控

  • 运维
  • 中间件
  • kafka
章工运维
2023-02-23
目录

kafka介绍和常见操作

# 1.应用场景方面

RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。

kafka:用于处于活跃的流式数据,大数据量的数据处理上。

# 2.架构模型方面

producer,broker,consumer

RabbitMQ:以broker为中心,有消息的确认机制

kafka:以consumer为中心,无消息的确认机制

# 3.吞吐量方面

RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。

kafka:内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,消息处理的效率高,吞吐量高。

# 4.集群负载均衡方面

RabbitMQ:本身不支持负载均衡,需要loadbalancer的支持

kafka:采用zookeeper对集群中的broker,consumer进行管理,可以注册topic到zookeeper上,通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或者轮询发送到broker上,producer可以基于语义指定分片,消息发送到broker的某个分片上。

kafka单机版搭建

下载kafka_2.13-2.6.0.tgz安装包

tar -zxf kafka_2.13-2.6.0.tgz

mv kafka_2.13-2.6.0/ kafka

自带的Zookeeper程序脚本与配置文件名与原生Zookeeper稍有不同。kafka自带的Zookeeper程序在bin目录下的zookeeper-server-start.sh脚本进行启动,zookeeper-server-stop.sh脚本进行停止。另外Zookeeper的配制文件在路径config/zookeeper.properties,如果有需要可以修改其中的参数。

首先强调一点,kafka的日志目录和zookeeper数据目录,这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们遇到的时候最好自定义一个路径。 zookeeper.properties 配置为

dataDir=/data/kafka/data/kfkzookeeper clientPort=2181 admin.enableServer=false tickTime=2000 initLimit=10 syncLimit=5 server.1=172.168.199.223:2888:3888

zookeeper配置myid文件 三台服务器都要在其zookeeper数据目录dataDir下创建一个myid文件,文件内只需填入上述配置文件中broker id的值,作为集群识别标识。以其中一台192.168.11.21服务器为例:

[root@host-192-168-11-21 ~]# cd /data/kafka/data/kfkzookeeper [root@host-192-168-11-21 kfkzookeeper]# echo 1 > myid 创建好后,查看一下,没问题,myid里面只有一个数值

kafka配置文件

进入kafka/config目录下,参考如下修改server.properties文件

broker.id=1 delete.topic.enable=true num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/data/kafka/data/kafka num.partitions=3 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=3 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=172.168.199.223:2181 zookeeper.connection.timeout.ms=60000 group.initial.rebalance.delay.ms=0

启动zookeeper服务

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

启动kafka

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

查看java项目进程

jps

# 5.kafka常见操作

启动Zookeeper

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

关闭 Zookeeper

bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties

启动kafka

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

关闭kafka

bin/kafka-server-stop.sh config/server.properties

创建topic

--partitions指定分区数 --replication-factor 指定分区数的副本

bin/kafka-topics.sh --create --zookeeper 192.168.11.21:2181 --replication-factor 3 --partitions 3 --topic test

./kafka-topics.sh --create --zookeeper 172.168.199.223:2181 --replication-factor 1 --partitions 1 --topic fgbp-log-pro

查看topic列表

bin/kafka-topics.sh --list --zookeeper 192.168.11.21:2181

查看topic详情

bin/kafka-topics.sh --zookeeper 192.168.11.21:2181 --describe --topic test

创建生产者,在一台服务器

bin/kafka-console-producer.sh --broker-list 192.168.11.21:9092 --topic test

创建消费者,在另一台服务器

bin/kafka-console-consumer.sh --bootstrap-server 192.168.11.22:9092 --topic test

删除topic

bin/kafka-topics.sh --zookeeper 192.168.11.22:2181 --delete --topic test

查看kafka topic数据内容

kafka-console-consumer.sh --bootstrap-server kafka-node-0:9093 kafka-node-1:9094 kafka-node-2:9095 --from-beginning --topic gaoyingfutures_bars_live

微信 支付宝
上次更新: 2023/02/23, 18:13:16

← nginx反代grpc docker-compose安装kafka集群→

最近更新
01
shell脚本模块集合
05-13
02
生活小技巧(认知版)
04-29
03
生活小技巧(防骗版)
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式