在Ubuntu机器上部署Kafka消息队列

前端之家收集整理的这篇文章主要介绍了在Ubuntu机器上部署Kafka消息队列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在Ubuntu机器上部署Kafka消息队列

步骤

  1. 安装依赖 ZooKeeper
  2. 安装Kafka
  3. 配置Kafka
  4. 启动和停止Kafka
  5. 测试Kafka

1 依赖: 安装ZooKeeper

apt-get update
apt-get install zookeeper

配置文件/etc/zookeeper/conf目录下

如果是单机不需要额外配置,有多个ZK请配置server.n地址。

# ls
configuration.xsl  environment  log4j.properties  myid  zoo.cfg

2 安装Kafka

mkdir kafka
cd kafka
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.2.0/kafka_2.12-0.10.2.0.tgz  

tar -xzf kafka_2.12-0.10.2.0.tgz --strip 1

解压到当前目录

3 配置Kafka

配置文件路径 ~/kafka/config/server.properties

默认情况下,Kafka不允许您删除主题。 要能够删除主题,请在文件末尾添加以下行:

delete.topic.enable = true

远程访问需要加上主机名

advertised.host.name=对外IP地址

以及ZooKeeper地址

zookeeper.connect=ZooKeeper对外IP地址:2181

4 启动和停止Kafka

启动Kafka

配置启动脚本 start_kafka.sh,使用启动脚本主要是为了让它在后台运行

#!/bin/bash
echo "Begin to start kafka"
nohup ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties > ~/kafka/kafka.log 2>&1 &
echo "......"

设置权限

chmod a+x start_kafka.sh
启动Kafka
./start_kafka.sh

可以在~/kafka/kafka.log日志文件中看到启动日志输出

停止Kafka

~/kafka/bin/kafka-server-stop.sh

5 测试Kafka

发布和消费一个"Hello World"的消息,以确保Kafka服务器正常运作。

使用两个不同终端

消费终端

~/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic helloTopic --from-beginning

发布终端

echo "Hello,World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic helloTopic > /dev/null

发布终端的输出

$ echo "Hello,World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic helloTopic > /dev/null
[2017-12-10 21:51:14,053] WARN Error while fetching Metadata with correlation id 1 : {helloTopic=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

没有helloTopic 这个topic,会自动创建一个。

消费终端的输出

$ ~/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic helloTopic --from-beginning
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
Hello,World

收到"Hello,World"消息了。

这样表示服务器配置好了。

如果需要远程访问的话,要注意设置advertised.host.namezookeeper.connect,都要使用对外的IP地址。

猜你在找的Ubuntu相关文章