kafka

Posted mr-yl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka相关的知识,希望对你有一定的参考价值。

2.4.6.3.1 概论

一个典型的Kafka体系结构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如下图所示。其中ZooKeeperKafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到BrokerBroker负责将收到的消息存储到磁盘中,而Consumer负责从Broker订阅并消费信息。

 

 

2.4.6.3.2 kafka的一些核心概念
2.4.6.3.2.1 Producer

生产者,也就是发送消息的一方。生产者负责创建消息,然后将其投递到Kafka中。

2.4.6.3.2.2 Consumer

消费者,也就是接收消息的一方。消费者连接到Kafka上并接受消息,进而进行相应的业务逻辑处理

2.4.6.3.2.3 Broker

服务代理节点,中间的kafka cluster,存储消息,。对于Kafka而言,Broker可以简单的看做一个独立的Kafka服务节点或Kafka服务实例。大多数情况下也可以将Broker看做一台Kafka服务器,前提是这台服务器上只部署一个Kafka实例。

2.4.6.3.2.4 Topic

Kafka中的消息以主题(Topic)为单位进行归类,生产者负责将消息发送到特定的主题(发送到Kafka集群中的每一条消息都要指定一个主题),而消费者负责订阅主题进行消费。主题是逻辑上的概念,他可以设置细分为多个分区(partition)。

2.4.6.3.2.5 Partition

Partition 是物理上的概念, 每个Topics划分为一个或者多个Partition,并且Partition中的每条消息都被标记了一个sequential id,也就是offsetoffset是消息在分区中的唯一标识,Kafka通过它保证分区内的顺序性,不过offset是不跨分区的,也就是说,Kafka保证的是分区有序而不是主题有序。

2.4.6.3.3 Kafka配置

(1) 需要注意的配置如下,其余配置都设置为默认值。

#broker的编号,如果集群中有多个broker,则每个broker的编号需要设置为不同的

#broker的值需要大于或等于0

broker.id=90

#broker对外提供的服务入口地址,默认端口为9092

listeners=PLAINTEXT://master:9092

#Kafka所需的Zookeeper集群地址

zookeeper.connect=localhost:2181

 

(2) 需要用到的命令

需要在Kafka的安装目录下运行。

#创建主题

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

#查看主题

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

#查看主题详情

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

#删除主题(测试未通过)

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topic-name

#创建消费者

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

(3) 遇到问题

如果只开了一个borker,需要将此属性设置为1

 

以上是关于kafka的主要内容,如果未能解决你的问题,请参考以下文章

大数据技术之KafkaKafka APIKafka监控Flume对接KafkaKafka面试题

大数据技术之KafkaKafka APIKafka监控Flume对接KafkaKafka面试题

kafkaKafka Leader选举流程和选举策略

kafkakafka 时间轮 TimingWheel

kafkakafka 使用 案例

kafkakafka特性