kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目。在它的主页描述kafka为一个高吞吐量的分布式(能将消息分散到不同的节点上)MQ。在这片博文中,作者简单提到了开发kafka而不选择已有MQ系统的原因。两个原因:性能和扩展性。Kafka仅仅由7000行Scala编写,据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。
Kafka版本:0.8.0
官网:http://kafka.apache.org/
官方文档:http://kafka.apache.org/documentation.html#quickstart
下载解压
# wget http://mirrors.hust.edu.cn/apache/kafka/0.8.0/kafka-0.8.0-src.tgz
# tar xzf kafka-0.8.0-src.tgz
# cd kafka-0.8.0-src
设置环境变量:
KAFKA_HOME=/usr/local/adsit/yting/apache/kafka/kafka-0.8.0
PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$MAHOUT_HOME/bin:$SCALA_HOME/bin:$STORM_HOME/bin:$REDIS_HOME/bin:$FLUME_HOME/bin:$KAFKA_HOME/bin
启动自带的zookeeper,也可以不用
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka server,不使用自带的要注意修改地址
bin/kafka-server-start.sh config/server.properties
创建topic
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test
list
bin/kafka-list-topic.sh --zookeeper localhost:2181
producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
comsumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
集群:多个brocker 整目录拷贝多份就可以了
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-1.properties
新的配置
config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
启动
JMX_PORT=9997 bin/kafka-server-start.sh config/server-1.properties &
JMX_PORT=9998 bin/kafka-server-start.sh config/server-2.properties &
集群启动要加:JMX_PORT=
创建topic
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 3 --partition 1 --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
list
bin/kafka-list-topic.sh --zookeeper localhost:2181
producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
comsumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic