前提:kafka作为分布式消息的一款中间件,安装过程比较复杂,这里记录一下。它依赖zk作为协调服务,所以不会装zk的,请移步上一篇文章吧!
下面是详细的步骤!
1、找到压缩包,名称为kafka_2.10-0.10.2.0.tgz
2、上传到ewallet目录下
3、解压缩。tar-xzvf XXX.tar 解压后会有这些目录 bin config libs LICENSE logs NOTICE site-docs
4、进入config下面,如果只是起服务,那么只要修改server.properties就行。其他consumer和producer就都没事的。
5、如果想起多个节点的,那么把server.properties复制两个 名字为server1和 server2两个。
6、server下有几个更改的:
- brokerid=0 这个每个配置里不一样,从0开始递增即可。
- 加上端口,不加的一般是默认的。配置多个节点的时候,要加上这个配置,不同的节点不同的端口
#listeners=PLAINTEXT://:9092port=9091
- 修改zookeeper的部署地址,可以在本机的zk,也可以是其他机器上的 zookeeper.connect=10.165.125.47:2181
7、如果要起消费者或者把生产者也修改配置,注意消费者跟着server,要置nbootstrap.servers=localhost:9092,消费者跟着zk,其他不修改,这个配置了就代表可以用consumer.sh去测试消费消息了
8、进入bin目录下,开始启动
/home/kafka/bin/kafka-server-start.sh -daemon /home/kafka/bin/config/server2.properties/home/kafka/bin/kafka-server-start.sh -daemon /home/kafka/bin/config/server1.properties
9、这样的启动不展示日志,可以ps一下看看是否服务是否存在。服务建好了 那么接下来要建queue了。
/bin/kafka-topics.sh --create --zookeeper XXX:port --replication-factor 1 --partitions 4 --topic xxx
–partitions指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两个partition最好;
–replication-factor指定partition的replicas数,建议设置为2; 代表的是副本数。
10、查看所有queue
/bin/kafka-topics.sh --list --zookeeper xxx:port
11、查看所有queue状态,这个可以查看这个队列的分区情况,注意,分区数非常重要!!下图表示只有1个分区。
bin/kafka-topics.sh --zookeeper XXXXX:2181 --topic "testtest" --describe
12、如果此时,消费者的数量为2,但是如上,分区只有1,那么就会有其他消费者收不到消息,所以这时候需要给topic增加分区
bin/kafka-topics.sh --zookeeper XXXXX:2181 --alter --topic testtest --partitions 2
这样子 就代表分区创建成功啦!所以,这里就意味着在创建队列的时候,千万记得要设置好正确的分区数,不然就会和目标适得其反。