目录

Kafka简介

kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性:

  1. 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  2. 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。
  3. 支持通过kafka服务器和消费机集群来分区消息。
  4. 支持Hadoop并行数据加载。

kafka的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。

Kafka安装

  • 下载Kafka,下载地址:http://kafka.apache.org

  • 解压Kafka

tar -xzf kafka_2.9.2-0.8.1.1.tgz
cd kafka_2.9.2-0.8.1.1`
Kafka依赖于zookeeper,如果没有zookeeper,可以使用kakfa自带的单节点Kafka
` bin/zookeeper-server-start.sh config/zookeeper.properties
[2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
  • 启动KafKa
 bin/kafka-server-start.sh config/server.properties
[2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
[2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
...
  • Kafka使用

创建TOPIC:

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

查看topic列表:

 bin/kafka-topics.sh --list --zookeeper localhost:2181
test
  • 使用生产者发送消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a message
This is another message
  • 消费者接受消息:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
This is a message
This is another message