docker中安装kafka

docker中安装kafka:

1.下载镜像

由于kafka是基于zookeeper的分布式管理开发的,所以需要下载zookeeper,kafka自带的有zookeeper,但是不好用,有可能会出问题,所以还是推荐自己配置zookeeper,能够自己来管理。

1. docker pull zookeeper

2. docker pull wurstmeister/kafka

2.启动容器

1.docker run -d --name zookeeper -p 2181:2181 -t zookeeper

指定zookeeper的默认端口2181

2. docker run -d --name kafka \ -p 9092:9092 \ -e KAFKA_BROKER_ID=0 \ -e KAFKA_ZOOKEEPER_CONNECT=172.16.100.40:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.100.40:9092 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

 

 

2. docker run -d --name kafka \ -p 9092:9092 \ -e KAFKA_BROKER_ID=0 \ -e KAFKA_ZOOKEEPER_CONNECT=172.31.74.7:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.100.40:9092 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

 

KAFKA_BROKER_ID=0 kafka在集群中的唯一标识 KAFKA_ZOOKEEPER_CONNECT=172.16.100.41:2181 监听zookeeper的地址 KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.100.41:9092 kafka服务器的地址 KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 指定端口

 

3.查看日志看是否运行成功,进入容器

opt/kafka_2.11-1.1.1/

创建主题

./bin/kafka-topics.sh --create --zookeeper 172.16.100.40:2181 --replication-factor 1 --partitions 1 --topic mykafka

生产者发送消息

./bin/kafka-console-producer.sh --broker-list 172.16.100.40:9092 --topic mykafka

消费者接收消息

./bin/kafka-console-consumer.sh --bootstrap-server 172.16.100.40:9092 --topic mykafka --from-beginning

 

 

4.建立kafka集群

使用docker在一台服务器上模拟集群;

通过命令修改broker_id和端口号就能创建新的kafka服务

docker run -d --name kafka1 \ -p 9093:9093 \ -e KAFKA_BROKER_ID=1 \ -e KAFKA_ZOOKEEPER_CONNECT=172.31.74.7:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.100.40:9093 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka

 

docker run -d --name kafka2 \ -p 9094:9094 \ -e KAFKA_BROKER_ID=2 \ -e KAFKA_ZOOKEEPER_CONNECT= :2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.100.40:9094 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka

 

创建Replication为2,Partition为2的topic

bin/kafka-topics.sh --create --zookeeper 172.16.100.40:2181 --replication-factor 3 --partitions 6 --topic partopic

 

选一台服务器作为发布者发布消息

./bin/kafka-console-producer.sh --broker-list 172.16.100.40:9093 --topic partopic

在另一台服务器接收消息

./bin/kafka-console-consumer.sh --bootstrap-server 172.16.100.40:9092 --topic partopic --from-beginning

查看topic状态

bin/kafka-topics.sh --describe --zookeeper 172.16.100.40:2181 --topic partopic

topic:主题名称

partition:分区

leader:领导机器

replicas:数据备份的机器

isr:存活的机器

停止一台服务以后的情况:

分区1和分区2的leader都被分配到broker2服务上了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值