Kafka安装与入门实例

Kafka安装与入门实例

Kafka 介绍

Kafka是一个分布式的流平台,它具有以下三个关键能力:
1. 发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统。
2. 以容错的方式存储消息(流)。
3. 在消息流发生时处理它们。

应用:
1. 构建实时的流数据管道,可靠地获取系统和应用程序之间的数据。
2. 构建实时流的应用程序,对数据流进行转换或反应。

基本术语:
Topic:Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic).
Producer:发布消息的对象称之为主题生产者(Kafka topic producer)
Consumer:订阅消息并处理发布的消息的种子的对象称之为主题消费者(consumers)
Broker:已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker). 消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。

Kafka 安装

1.下载Kafka:Apache Kafka官网
2.下载完解压即可

Kafka 测试

Kafka需要依赖Zookeeper,如果你没有Zookeeper,你可以使用kafka自带打包和配置好的Zookeeper。

启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties

启动 Kafka 服务
bin/kafka-server-start.sh config/server.properties

创建 Kafka 主题(主题名为Test)
bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic Test

发送消息
bin/kafka-console-producer.sh –broker-list localhost:9092 –topic Test
输入:This is a message

消费消息
bin/kafka-console-consumer.sh –zookeeper localhost:2181 –topic Test –from-beginning
输出:This is a message

Kafka 集群配置

配置多个broker

再复制两个配置文件
cp config/server.properties config/server1.properties
cp config/server.properties config/server2.properties

设置其中的以下属性
格式:
listeners = security_protocol://host_name:port
示例:
listeners = PLAINTEXT://your.host.name:9092

config/server1.properties:
broker.id=1
listeners=PLAINTEXT://你的 ip 地址:9093
log.dir=/tmp/kafka-logs-1
config/server2.properties:
broker.id=2
listeners=PLAINTEXT://你的 ip 地址:9094
log.dir=/tmp/kafka-logs-2

集群测试

启动 server
bin/kafka-server-start.sh config/server1.properties
bin/kafka-server-start.sh config/server2.properties

创建一个有3个备份的topic
bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 3 –partitions 1 –topic my-topic3

查看每个集群节点
bin/kafka-topics.sh –describe –zookeeper localhost:2181 –topic my-replicated-topic
如果集群存在大于等于2个以上的节点,就会选举出一个leader,其他的节点为follower,如果为leader的节点挂掉了,会重新选取一个leader。具体讲解自查。

发送信息到新的topic上
bin/kafka-console-producer.sh –broker-list localhost:9092 –topic my-topic3
输入:my name is lilei

消费新topic上的信息
bin/kafka-console-consumer.sh –zookeeper localhost:2181 –from-beginning –topic my-topic3
输出:my name is lilei

集群容错测试

杀掉为leader的节点,备份节点之一成为新的leader
但是topic中的数据并没有丢失。
bin/kafka-console-consumer.sh –zookeeper localhost:2181 –from-beginning –topic my-topic3
输出:my name is lilei

只是写了我学习Kafka的大致总结,有些细节需要实际上手才能发现,哈哈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值