ubuntu18.04下Kafka安装与部署

Apache Kafka是分布式发布-订阅消息系统,Apache Kafka与传统消息系统相比,有以下不同:

  • 它被设计为一个分布式系统,易于向外扩展;
  • 它同时为发布和订阅提供高吞吐量;
  • 它支持多订阅者,当失败时能自动平衡消费者;
  • 它将消息持久化到磁盘,因此可用于批量消费;

本篇文章是基于Ubuntu18.04来安装Kafka。

一、安装Java

更新软件包

sudo apt-get update

安装openjdk-8-jdk

sudo apt-get install openjdk-8-jdk

查看java版本,看看是否安装成功

wzj@wzj-ThinkPad-T61:~$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安装Zookeeper

请看我这篇文章:ZooKeeper的安装与部署

三、安装Kafka

下载地址:https://kafka.apache.org/downloads,ubuntu下可以用wget直接下载,我是下载到了/home/wzj/kafka目录

wget http://mirrors.shuosc.org/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz

解压

tar -zxvf kafka_2.11-1.0.0.tgz

创建日志存储目录

wzj@wzj-ThinkPad-T61:~$ cd kafka/
wzj@wzj-ThinkPad-T61:~/kafka$ mkdir logs-1

进入kafka解压目录,修改kafka-server 的配置文件

vim config/server.properties

修改配置文件中21、31、36和60行

broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://host_ip:9092
log.dirs=/home/wzj/kafka/logs-1

四、功能验证

1、启动Zookeeper,Zookeeper部署的是单点的。

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

查看是否启动成功


2、启动Kafka服务,使用 kafka-server-start.sh 启动 kafka 服务
bin/kafka-server-start.sh config/server.properties

3、创建topic

使用 kafka-topics.sh 创建单分区单副本的 topic test

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

查看 topic 列表

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

4、产生消息,创建消息生产者

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

5、消费消息,创建消息消费者

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

在生产消息的窗口,输入内容,在消费窗口就可以打印出来


6、查看Topic消息

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
wzj@wzj-ThinkPad-T61:~/kafka/kafka_2.11-1.0.0$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Topic:test	PartitionCount:1	ReplicationFactor:1	Configs:
	Topic: test	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
第一行给出了所有分区的摘要,每个附加行给出了关于一个分区的信息。 由于我们只有一个分区,所以只有一行。
    “Leader”: 是负责给定分区的所有读取和写入的节点。 每个节点将成为分区随机选择部分的领导者。
    “Replicas”: 是复制此分区日志的节点列表,无论它们是否是领导者,或者即使他们当前处于活动状态。
    “Isr”: 是一组“同步”副本。这是复制品列表的子集,当前活着并被引导到领导者。


参考文章

猜你喜欢

转载自blog.csdn.net/u010889616/article/details/80641922