编程语言
首页 > 编程语言> > Java面试:2021.05.29

Java面试:2021.05.29

作者:互联网

1、Kafka的架构是怎样的?

图片

Kafka 的整体架构非常简单,是分布式架构,Producer、Broker 和Consumer 都可以有多个。
1.Producer,Consumer 实现 Kafka 注册的接口。 

2.数据从 Producer 发送到 Broker 中,Broker 承担一个中间缓存和分发的作用。 

3.Broker 分发注册到系统中的 Consumer。Broker 的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。 

4.客户端和服务器端的通信,是基于简单,高性能,且与编程语言无关的 TCP 协议。
几个重要的基本概念:
Topic:特指 Kafka 处理的消息源(feeds of messages)的不同分类。 Partition:Topic 物理上的分组(分区),一个 Topic 可以分为多个 Partition 。每个 Partition 都是一个有序 的队列。Partition 中的每条消息都会被分配一个有序的 id(offset)。 

replicas:Partition 的副本集,保障 Partition 的高可用。 

leader:replicas 中的一个角色,Producer 和 Consumer 只跟 Leader 交互。 

follower:replicas 中的一个角色,从 leader 中复制数据,作为副本,一旦 leader 挂掉,会从它 的 followers 中选举出一个新的 leader 继续提供服务。

Message:消息,是通信的基本单位,每个 Producer 可以向一个Topic(主题)发布一些消息。 

Producers:消息和数据生产者,向 Kafka 的一个 Topic 发布消息的过程,叫做 producers 。 

Consumers:消息和数据消费者,订阅 Topic ,并处理其发布的消息的过程,叫做 consumers 。 

Consumer group:每个 Consumer 都属于一个 Consumer group,每条消息只能被 Consumer group 中的一个 Consumer 消费,但可以被多个 Consumer group 消费。

Broker:缓存代理,Kafka 集群中的一台或多台服务器统称为 broker 。

Controller:Kafka 集群中,通过 Zookeeper 选举某个 Broker 作为 Controller ,用来进行 leader election 以及 各种 failover 。

ZooKeeper:Kafka 通过 ZooKeeper 来存储集群的 Topic、Partition 等元信息等。

 

2、Kafka 和 RocketMQ的区别。

标签:Java,2021.05,29,Kafka,Topic,SQL,日志,Consumer,ID
来源: https://blog.csdn.net/A_BlackMoon/article/details/117653032