Kafka学习笔记:初识Kafka

来源:互联网 发布:demo设计软件 编辑:程序博客网 时间:2024/05/01 21:30

前言

Apache Kafka is a distributed streaming platform and is used for building real-time data pipelines and streaming apps.In Kafka the communication between the clients and the servers is done with a simple, high-performance, language agnostic TCP protocol.(更多详情见官网介绍)


下载安装

下载解压,设置并更新环境变量。Kafka依赖于ZooKeeper所以必须先启动ZooKeeper服务,如果没启动ZooKeeper的话也可以使用如下命令获取一个单节点ZooKeeper实例:

zookeeper-server-start.sh /usr/DevProgram/kafka_2.11-0.11.0.0/config/zookeeper.properties

启动成功守护进程会绑定到某一端口:
INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)

新开一终端,启动Kafka服务:

kafka-server-start.sh /usr/DevProgram/kafka_2.11-0.11.0.0/config/server.properties

启动成功:
INFO [Kafka Server 0], started (kafka.server.KafkaServer)

使用JPS可以看到zookeeper与kafka的进程:

创建一个单分区单副本的”test”主题:

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test;kafka-topics.sh --list --zookeeper localhost:2181;

使用生产者程序往主题发送消息,默认情况下消息是按行发送的:

kafka-console-producer.sh --broker-list localhost:9092 --topic test;>helloworld1>helloworld2

新开终端,启动消费者程序接收指定主题下的消息:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

此时消费者终端会显示生产者之前往主题中输入的消息。如果此时在生产者终端中输入新消息,消费者终端会同步显示消息:

生产者与消费者并不直接交互,而是通过kafka这一中间件来间接通信。在生产者-消费者直接通信模式中,消息的传递是以”推”的形式发送的;而在kafka模型中,消费者获取消息是以”拉”的形式获取的,这降低了消费者端的负担。

原创粉丝点击