Home »  云计算 » kafka初接触

kafka

在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样一些问题: 我想分析一下用户行为(pageviews),以便我能设计出更好的额广告位; 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存数据库浪费,直接存硬盘操作效率又低

高水平扩展、高吞吐能力

顺序读写代替随机读写,两者相差将近10000倍,免去寻道时间

相关概念

AMQP协议 消费者:从消息队列中请求消息的客户端应用程序; 生产者:向broker发布消息的客户端应用程序; AMQP服务器端:用来接收生产者发送的消息并将这些消息路由给服务器中的队列;

主题:一个主题类似于新闻中的体育、娱乐、教育等分类概念,在实际工程中通常一个业务一个主题; 分区:一个topic中的消息数据安装多个愤青组织,分区是kafka消息队列组织的最小单位,一个愤青可以看作是一个FIFO的队列;

安装

安装java1.8

kafka依赖java1.8+,所以必须保证系统安装。

Download:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载kafka

http://apache.fayea.com/kafka/0.10.2.1/kafka_2.12-0.10.2.1.tgz

操作

start zookeeper

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

start kafka server

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

create a topic

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

show topic bin/kafka-topics.sh --list --zookeeper localhost:2181

send some message

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

Start a consumer

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

监控

分区消费模型

生产和消费一对一的关系,offset较为重要

组消费模型

订阅式消费,以组定义进行消费