常见的消息队列有: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,不应该用于实际研发中,可能有性能等方面的问题。持续更新中。