您的位置:首页 > 编程语言 > Java开发

SpringBoot -- Kafka(一) 环境搭建

2017-01-19 11:13 302 查看

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[/code] 
tar -zxvf zookeeper-3.4.9.tar.gz


配置 zoo.cfg

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg


配置 dataDirdataLogDir

dataDir=/data/www/data/zookeeper
dataLogDir = /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




启动producer

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


启用consumer

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


发送消息

producer



consumer



可能的错误

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

host.name=xx.xx.xxxx.xx

hostname 为内网地址

代码

代码请移步 Github参考地址

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: