Apache Kafka代理

1. 什么是Kafka代理(Broker)?

Kafka代理也称为Kafka服务器和Kafka节点。它负责调解不同计算机系统之间的对话,保证将消息正确的传递给各方。

Kafka集群通常由多个代理组成,集群使用Zookeeper来维护状态。单个代理每秒可以处理数千次读写操作,如果性能不受影响,每个代理都可以处理TB级的消息。另外, ZooKeeper会执行代理领导者选举。

pic

Kafka的代理被建模为KafkaServer实例,它是主题的宿主。主题总是在很多代理上进行分区,在集群中,一个代理实际上托管一个或多个主题的分区,即使一个主题只有一个分区也是如此。

生产者可以根据代理存储消息的偏移量想代理发送消息,而消费者通过传入主题、分区、偏移量来读取消息。多个代理可以通过Zookeeper直接或间接的共享信息来组成Kafka集群,一个集群只能有一个代理作为控制器。通过运行kafka-server-start.sh脚本,我们可以启动一个Kafka代理。

2. 怎么启动Kafka代理?

  • 首先启动Zookeeper

  ./bin/zookeeper-server-start.sh config/zookeeper.properties
  • 然后启动Kafka代理(只有Zookeeper在运行状态下才行,因为Kafka代理需要连接Zookeeper

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

   kafka-server-start.sh默认使用config/log4j.properties来设置日志的配置,我们可以使用KAFKA_LOG4J_OPTS环境变量覆盖的配置,例如:

  KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:config/log4j.properties"

kafka-server-start.sh 脚本还接受KAFKA_HEAP_OPTS EXTRA_ARGS环境变量。 

3. Kafka命令行选项

-name

在守护进程模式下默认为kafkaServer

-loggc

在守护进程模式下启用。

–override property=value

传入的值会覆盖server.properties文件中为property设置的值。例如:

$ ./bin/kafka-server-start.sh config/server.properties --override broker.id=100
...
INFO [KafkaServer id=100] started (kafka.server.KafkaServer)

Apache Kafka代理

发表评论

邮箱地址不会被公开。 必填项已用*标注

× 5 = 五

滚动到顶部