您的位置:首页 > 其它

Kafka学习笔记:初识Kafka

2017-08-26 14:21 295 查看

前言

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模型中,消费者获取消息是以”拉”的形式获取的,这降低了消费者端的负担。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: