linux

快速搭建消息队列 - Kafka

常见的消息队列有:abbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ,而其中,Kafka在单机呑吐量以及可用性上都非常优秀,本文基于docker创建kafka集群,之后测试下消息的发布与接收,通过本文,你可以快速的搭建kafka集群。

首先,我们需要安装 docker、docker-compose,这部分内容可以查阅 本博客关于docker的内容,现在,我们搭建 kafka 集群吧。

1、docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper

2、docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest

现在 我们已经部署完毕了,没错,就这么简单。

测试下吧:

1、docker exec -it kafka /bin/bash

2、cd /opt/kafka/

3、创建一个主题 kpromise:bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic kpromise

4、生产消息:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kpromise

进入后随便输入,之后按 ctrl + c 退出

5、消费消息:bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic kpromise

此时你应该看到第 4 步 里面输入的内容了。

踩过的坑:直接使用 https://github.com/wurstmeister/kafka-docker 然后 docker-compose up ,结果太慢了,感觉镜像源没有为中国用户优化啊, 所以建议还是用上面的方式吧,当然,上面的方式也只是个 demo,不应该用于实际研发中,可能有性能等方面的问题。持续更新中。

 

full-stack-trip

Share
Published by
full-stack-trip

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago