當(dāng)您使用 Kafka 作為消息中間件時(shí),需要使用消費(fèi)者(Consumer)來訂閱主題(Topic)并消費(fèi)其中的消息。Kafka 提供了多種消費(fèi)者命令,可以通過命令行或程序化方式來消費(fèi) Kafka 中的消息。
以下是幾個(gè)常用的 Kafka 消費(fèi)者命令:
1.kafka-console-consumer.sh:這個(gè)命令可以在控制臺上消費(fèi)指定主題的消息。例如,要消費(fèi)主題為 my-topic 的消息,可以使用以下命令:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning
其中,--bootstrap-server 參數(shù)指定了 Kafka 服務(wù)的地址和端口號,--topic 參數(shù)指定了要消費(fèi)的主題名稱,--from-beginning 參數(shù)表示從主題的開始處開始消費(fèi)消息。
2.kafka-consumer-groups.sh:這個(gè)命令可以用來管理 Kafka 中的消費(fèi)者組。例如,要查看名為 my-group 的消費(fèi)者組的消費(fèi)狀態(tài),可以使用以下命令:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --describe
其中,--bootstrap-server 參數(shù)指定了 Kafka 服務(wù)的地址和端口號,--group 參數(shù)指定了要管理的消費(fèi)者組的名稱,--describe 參數(shù)表示要查看消費(fèi)者組的詳細(xì)信息,包括消費(fèi)者組內(nèi)的消費(fèi)者列表、分區(qū)分配情況、消費(fèi)者的偏移量等。
kafka-avro-console-consumer.sh:這個(gè)命令可以消費(fèi) Avro 格式的消息。如果消息是以 Avro 格式序列化存儲在 Kafka 中,可以使用這個(gè)命令來消費(fèi)消息。例如,要消費(fèi)主題為 my-topic 的 Avro 消息,可以使用以下命令:
bin/kafka-avro-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning --property schema.registry.url=http://localhost:8081
其中,--bootstrap-server 參數(shù)指定了 Kafka 服務(wù)的地址和端口號,--topic 參數(shù)指定了要消費(fèi)的主題名稱,--from-beginning 參數(shù)表示從主題的開始處開始消費(fèi)消息,--property 參數(shù)指定了 Avro Schema 的注冊地址。
以上是幾個(gè)常用的 Kafka 消費(fèi)者命令,您可以根據(jù)具體需求來選擇使用。在實(shí)際應(yīng)用中,還可以使用 Kafka Consumer API 來編寫程序化的消費(fèi)者,以便更好地控制消費(fèi)者的行為和處理邏輯。