SpringBoot -- Kafka(一) 环境搭建

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
 
 
  • 1
  • 1
tar -zxvf zookeeper-3.4.9.tar.gz
 
 
  • 1
  • 1

配置 zoo.cfg

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
 
 
  • 1
  • 2
  • 1
  • 2

配置 dataDirdataLogDir

dataDir=/data/www/data/zookeeper
dataLogDir = /data/www/logs/zookeeper
 
 
  • 1
  • 2
  • 1
  • 2

启动zk

./zkServer.sh ../conf/zoo.cfgzkServer.sh start

 
 
  • 1
  • 1

安装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 &
 
 
  • 1
  • 2
  • 1
  • 2

测试

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

创建Topic

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

查看创建的 Topic

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

testTopic

启动producer

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

启用consumer

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

发送消息

producer 
producer

consumer

consumer

可能的错误

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

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

代码

代码请移步 Github参考地址

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值