消息中间件之kafka(一)安装使用

  1. 首先,我们知道kafka是一个消息中间件。我们先安装一个来操作一下,因为我们是开发环境,所以我们这里采用方便的docker进行安装。
    启动zookeeper
docker run -d --name zookeeper --publish 2181:2181 \--volume /etc/localtime:/etc/localtime \--restart=always \wurstmeister/zookeeper

启动kafka,注意在运行的时候需要把对应的IP换成自己的IP地址

docker run -d --name kafka --publish 9082:9092 \--link zookeeper:zookeeper \--env KAFKA_BROKER_ID=100 \--env HOST_IP=192.168.1.108 \--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \--env KAFKA_ADVERTISED_HOST_NAME=192.168.1.108 \--env KAFKA_ADVERTISED_PORT=9082 \--restart=always \--volume /etc/localtime:/etc/localtime \wurstmeister/kafka

启动kafka的管理页面,这个可以启动也可以不启

docker run -d --name kafka-manager \--link zookeeper:zookeeper \--link kafka:kafka -p 9001:9000 \--restart=always \--env ZK_HOSTS=zookeeper:2181 \sheepkiller/kafka-manager
  1. 测试一下消息的发送与接收
    我们这里使用的是docker安装的,我们首先需要进入一下docker

查询dockerID,可以从第一列看到容器ID

docker ps 

在这里插入图片描述
以下命令请将ID换成对应ID

docker exec -it 46e0e009c508 /bin/bash  
#切换到对应目录
cd /opt/kafka_2.12-2.5.0/bin/
#创建一个topic,replication-factor 
#副本数量不能大于broker的数量
#partitions 是我们队列的数量,一个partion在同一个消费者组内只能有一个消费者,如果我们想使用多个消息者进行消费,我们可以在里设置多个partion
 ./kafka-topics.sh --create --zookeeper 192.168.3.17:2181 --replication-factor 1 --partitions 1 --topic test520
#查询创建的topics
./kafka-topics.sh --list --zookeeper 192.168.3.17:2181

开启一个消息者

#1、消费者在同一个组内只能消费一次消息,如果想要两个客户端分别消费同一个消息,可以设置为两个组
#2、消费者消费完消息后,kafka不会删除此消息。它只会改变它的offset值。待等失效时间过了,消息才会删除(默认为7天)。
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer-property group.id=testGroup -consumer-property client.id=consumer-1 --topic test520

开启一个生产者

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

测试完成后,我们可以看到。当我们生产端发送一条消息的时候,我们的消息者就可以收到对应的消息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章