SpringBoot -- Kafka(一) 环境搭建

来源:互联网 发布:php开发ios 编辑:程序博客网 时间:2024/06/01 10:42

Kafka

  • 分布式发布-订阅类型的MQ
  • 高吞吐量
  • 消息无序,同一个 partition中消息有序
  • 版本号 kafka_2.11-0.10.1.1.tgz: 2.11为scala版本号,0.10.1.1 为kafka版本
  • 准备好JVM

  • 概念

    • Broker : Kafka服务器,一个服务器被称为一个Broker
    • Topic : 每一类消息可以定义一个Topic
    • Partition : 每个Topic都有1个或者多个partition,属于物理上的分隔
    • offset : 偏移量每个partition中的消息唯一标识
    • Producer : 消息发布者
    • Consumer : 消息订阅者
    • Consumer Group : 属于订阅者独有的概念,默认为统一的group
  • 更多参考 官网

CentOS下安装Kafka

apache.org项目列表

安装Zookeeper

使用外部zookeeper,不使用kafka自带的zookeeper,使用wget 命令进行下载

  • 使用wget命令下载
  • 使用tar 进行解压
  • 使用默认port: 2181
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar -zxvf zookeeper-3.4.9.tar.gz

配置 zoo.cfg

cp zoo_sample.cfg zoo.cfgvim zoo.cfg

配置 dataDirdataLogDir

dataDir=/data/www/data/zookeeperdataLogDir = /data/www/logs/zookeeper

启动zk

./zkServer.sh ../conf/zoo.cfg

安装Kafka

  • 使用wget命令下载
  • 使用tar 进行解压
  • 使用默认port: 9092

修改位于config下的 server.properties


  • 使用默认端口号:9092
  • 对外网开启服务: advertised.host.name = xxx.xx.xxx.xx (服务器外网地址)

  • xxx.xx.xxx.xx (服务器外网地址),我这里服务器在远端所以需要配置
  • log.dirs: log.dirs=/tmp/kafka-logs

  • partitions:num.partitions=1
  • zookeeper
    • zookeeper.connect=localhost:2181 (zk和kafka我放在了同一台服务器上)
    • zookeeper.connection.timeout.ms=6000
  • 启动kafka

    # &为后台运行./kafka-server-start.sh ../config/server.properties &

    测试

    • 创建Topic
    • 启动producer
    • 启用consumer

    创建Topic

    ./kafka-topic.sh --create --zookeeper localhost:2181 --relication-factor 1 --partitions 1 --topic testTopic

    查看创建的 Topic

    ./kafka-topics.sh --list --zookeeper localhost:2181

    testTopic

    启动producer

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic

    启用consumer

    ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic testTopic --from-beginning

    发送消息

    producer
    producer

    consumer

    consumer

    可能的错误

    当kafka服务与项目在不同服务器上时,可能会出现连接错误,这个时候需要绑定kafka的host

    • host.name=xx.xx.xxxx.xx
    • hostname 为内网地址

    代码

    代码请移步 Github参考地址

    如有疑问请加公众号(K171),如果觉得对您有帮助请 github start
    公众号_k171

    0 0
    原创粉丝点击