kafka作为一种分布式消息队列的实现,采用发布订阅的消息模型。通过生产者把消息Topic存储在broke,消息者可以订阅多个感兴趣的topic进行消费。消费者需要自己保留一个offset,从kafka 获取消息时,只拉去当前offset 以后的消息。
Kafka相比于其他MQ(activemq、rabbitmq)优点:
1.高性能高吞吐量 ; Kafka 集群可以透明的扩展,增加新的服务器进集群。
高性能。Kafka 的性能大大超过传统的ActiveMQ、RabbitMQ等MQ 实现,尤其是Kafka 还支持batch 操作。
2.容错能力。kafka把每个partition的数据复制到几台服务器上,一台broke 出故障时,zookeeper服务将通知生产者和消费者,从而使用其他的broke节点。
环境:java 1.8、kafka 0.10.1.1、CentOS7
1 安装kafka,官网戳->kafka官网
wget https://archive.apache.org/dist/kafka/0.10.1.1/kafka_2.10-0.10.1.1.tgz
2 解压
tar -zvxf kafka_2.10-0.10.1.1.tgz
3 修改配置文件
cd /kafka_2.10-0.10.1.1/
vim config/server.properties
添加内容如下,之后保存文件esc->:wq:
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
delete.topic.enable=true
启动zookeeper:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动Kafka服务,进入tmux后启动kafka-server,之后ctrl+b->d返回控制台(tmux的使用可以查看我的另一片文章->tmux使用)
tmux
bin/kafka-server-start.sh config/server.properties
tmux rename -t 0 kafka-server
创建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
生产消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
输入(完后使用ctrl+c退出输入)
>hello kafka
>some test
消费消息:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
删除Topic:
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
关闭kafka-server:
tmux kill-session -t kafka-server
关闭Zookeeper:
bin/zookeeper-server-stop.sh
kafka的安装到这里就结束了,kafka不像RabbitMQ那样自带网页控制端,但可以自己配置添加,下面是kafka-manager的安装
我使用的是kafka-manager1.3.3.7,其他版本可以去下面的github里找:
https://github.com/yahoo/kafka-manager/releases
注意:由于github上的是源文件,所以需要自行编译打包,过程很麻烦且非常非常慢(我装了一晚上。。。还可能会失败),这里就不介绍怎么自己装了,我将自己打包好的压缩包放在下面->kafka-manager下载
首先将下好的zip文件上传到服务器,然后解压:
unzip kafka-manager-1.3.3.7.zip
启动(默认使用9000端口),依然使用tmux启动:
cd kafka-manager-1.3.3.7/
tmux
bin/kafka-manager
tmux rename -t 1 kafka-manager
换端口或者指定配置文件则使用下面的命令:
bin/kafka-manager -Dconfig.file=/conf/application.conf -Dhttp.port=8080
kafka安装完毕,之后浏览器可访问IP:9000出现下面的界面:
点击Add cluster添加监控的集群,Cluster Zookeeper Hosts那里添加你的Zookeeper集群地址IP:2181,有多个用","分开,之后点击save
即可查看监控,创建Topic等一系列操作类似RabbitMQ,更多操作查看github->https://github.com/yahoo/kafka-manager