首页 > 系统服务 > 详细

Ubuntu简单安装kafka及使用

时间:2019-08-28 18:29:28      阅读:257      评论:0      收藏:0      [点我收藏+]

参考地址:https://www.jianshu.com/p/d0e630c8f4ae

一、下载 kafka 二进制安装包

下载地址: http://kafka.apache.org/downloads

技术分享图片

二、上传 kafka 压缩包到虚拟机中并解压到指定文件夹

tar -xzf kafka_2.11-2.3.0.tgz 

三、启动 kafka 服务

kafka需要使用Zookeeper,首先需要启动Zookeeper服务,如果没有的话,可以使用kafka自带的脚本启动一个简单的单一节点Zookeeper实例:

bin/zookeeper-server-start.sh config/zookeeper.properties &

如果已经启动了 zookeeper,则直接运行下面的命令:

bin/kafka-server-start.sh config/server.properties &

停止 kafka 服务则运行下面命令:

bin/kafka-server-stop.sh config/server.properties

四、kafka 简单使用

4.1、创建一个主题

首先创建一个名为test的topic,只使用单个分区和一个复本

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

4.2、查看主题

bin/kafka-topics.sh --list --zookeeper localhost:2181

4.3、发送消息

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

技术分享图片

4.4、接收消息

启动一个消费者,消费者会接收到消息

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

技术分享图片

五、 搭建一个多个broker的集群

刚才只是启动了单个broker,现在启动有3个broker组成的集群,这些broker节点也都是在本机上的:

首先为每个节点编写配置文件:

cp config/server.properties config/server_1.properties
cp config/server.properties config/server_2.properties

在拷贝出的新文件中添加以下参数:server_1.properties

 broker.id=1
  port=9093
  log.dir=/tmp/kafka-logs-1

broker.id在集群中唯一的标注一个节点,因为在同一个机器上,所以必须制定不同的端口和日志文件,避免数据被覆盖。

刚才已经启动可Zookeeper和一个节点,现在启动另外两个节点:

bin/kafka-server-start.sh config/server_1.properties &

bin/kafka-server-start.sh config/server_2.properties &

创建一个拥有3个副本的topic:

 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic zx_test

现在我们搭建了一个集群,怎么知道每个节点的信息呢?运行“"describe topics”命令就可以了:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic zx_test

技术分享图片

下面解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只有一行。

leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
replicas:列出了所有的副本节点,不管节点是否在服务中.
isr:是正在服务中的节点.

在我们的例子中,节点1是作为leader运行。

 向topic发送消息:

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

消费这些消息:(三个副本,任意一个端口即可)

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092/9093/9094 --topic zx_test--from-beginning

测试一下容错能力:Broker 1作为leader运行,现在我们kill掉它:

ps -ef|grep server-1.properties
kill -9 xxxx

另外一个节点被选做了leader,node 1 不再出现在 in-sync 副本列表中:

技术分享图片

虽然最初负责续写消息的leader down掉了,但之前的消息还是可以消费的。

技术分享图片

 

Ubuntu简单安装kafka及使用

原文:https://www.cnblogs.com/cq-yangzhou/p/11425047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!