• kafka 安装和基本操作


    一、简单说明什么是kafka

    Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。

    举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。

    鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、https什么的),也称为报文,也叫“消息”。

    消息队列满了,其实就是篮子满了,”鸡蛋“ 放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。

    各位现在知道kafka是干什么的了吧,它就是那个"篮子"。


    二、安装和简单操作 

    1、java环境
    java -v
    2、下载kafka
    https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
    解压
    tar -xf kafka_2.13-3.2.0.tgz
    3、启动zookeeper
    cd kafka_2.13-3.2.0
    nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &
    4、修改日志目录
    vim server.properties
    log.dirs=/opt/apps/kafka_2.11-2.1.1/kafka-logs
    5、启动kafka
    nohup ./bin/kafka-server-start.sh ./config/server.properties &

    6、
    创建topic
    ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic topic_sdk_log
    ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
    显示topic详细
    ./bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic topic_sdk_log
    显示所有topic
    ./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
    删除topic
    ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test
    生产者发送消息
    注:每次回车表示触发“发送”操作,回车后可直接使用“Ctrl + c”退出生产者控制台。
    [root@localhost kafka_2.13-3.2.0]# ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    >hello kafka
    >123456
    消费者订阅消息
    ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    hello kafka
    123456


    三、遇到的一些问题:

    1、zookeeper is not a recognized option
    解决:
    打开kafka消费者端

    这个是0.9之后的打开方式
    /usr/java/kafka_2.12-2.2.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

    这个是0.9之前的打开方式
    /usr/java/kafka_2.12-2.2.0/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
    如果0.9之后使用这个命令打开会报这样的错误
    zookeeper is not a recognized option

    2、OpenJDK 64-Bit Server VM warning
    解决:虚拟机的核心数,调整成两个就可以的。

  • 相关阅读:
    Java JVM启动参数
    使用Navicat连接MySQL8.0版本报1251错误
    安装MySQL和出现的问题解决
    跨域问题:解决跨域的三种方案
    Java8 新特性lambda表达式(一)初始
    搭建docker私有仓库
    crontab定时任务
    CentOS610 php环境安装
    Docker常用命令
    PHP调用python脚本执行时报错
  • 原文地址:https://www.cnblogs.com/superbaby11/p/16299263.html
Copyright © 2020-2023  润新知