- 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
- 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。
- 支持通过kafka服务器和消费机集群来分区消息。
- 支持Hadoop并行数据加载。
下面是最新的kafka-0.8.1.1 集群的安装具体步骤。
由于Kafka 依赖 Zookeeper集群,首先得确保你的机器上面ZK 集群 能够正常运行, 这里就不介绍ZK 集群的具体安装了。
这里我用到的是 三台机器, ip 分别是 192.168.80.100 192.168.80.101 192.168.80.102
将192.168.80.100 这台机器上面的 kafka_2.9.1-0.8.1.1.tgz 解压之后 重命名为 kafka , 然后进入到这个目录 cd /usr/local/kafka/config/ 修改配置文件 server.properties 即可 具体修改的内容如下:
zookeeper.connect=192.168.80.100:2181,192.168.80.101:2181,192.168.80.102:2181
broker.id=100
port=9092
host.name=192.168.80.100
然后将整个 kafka 文件夹copy 到 另外两台机器上面 192.168.80.101 192.168.80.102
分别修改 cd /usr/local/kafka/config/ 配置文件 server.properties 具体修改的内容如下:
zookeeper.connect=192.168.80.100:2181,192.168.80.101:2181,192.168.80.102:2181
broker.id=101
port=9093
host.name=192.168.80.101
zookeeper.connect=192.168.80.100:2181,192.168.80.101:2181,192.168.80.102:2181
broker.id=102
port=9094
host.name=192.168.80.102
然后分别启动ZK 集群, 确保这3太机器zk 的进程都是开着的,然后分别每台机启动 kafka
先 cd /kafka 根目录 然后执行下面 脚本
bin/kafka-server-start.sh config/server.properties
启动之后创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看topic脚本如下bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
输入数据 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic ... my test message 1 my test message 2 ^C
拉出数据
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic ... my test message 1 my test message 2 ^C