簡介
kafka是一個分布式消息隊列。具有高性能、持久化、多副本備份、橫向擴展能力。生產者往隊列里寫消息,消費者從隊列里取消息進行業務邏輯。一般在架構設計中起到解耦、削峰、異步處理的作用。
kafka對外使用topic的概念,生產者往topic里寫消息,消費者從讀消息。為了做到水平擴展,一個topic實際是由多個partition組成的,遇到瓶頸時,可以通過增加partition的數量來進行橫向擴容。單個parition內是保證消息有序。
每新寫一條消息,kafka就是在對應的文件append寫,所以性能非常高。
下面我帶大家用docker安裝kafka
?
1.下載鏡像
這里使用了wurstmeister/kafka和wurstmeister/zookeeper這兩個版本的鏡像
docker pull wurstmeister/zookeeper
?
docker pull wurstmeister/kafka
?
?
docker pull sheepkiller/kafka-manager
?
查看鏡像? ?docker images
?
?
?
2.運行容器
2.1?啟動kafka
docker run -d --name kafka --publish 9082:9092 \--link zookeeper:zookeeper \--env KAFKA_BROKER_ID=100 \--env HOST_IP=192.168.1.108 \--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \--env KAFKA_ADVERTISED_HOST_NAME=192.168.1.108 \--env KAFKA_ADVERTISED_PORT=9082 \--restart=always \--volume /etc/localtime:/etc/localtime \wurstmeister/kafka
?
2.2?啟動zookeeper
docker run -d --name zookeeper --publish 2181:2181 \--volume /etc/localtime:/etc/localtime \--restart=always \wurstmeister/zookeeper
?
?
2.3 啟動kafka-manager
docker run -d --name kafka-manager \--link zookeeper:zookeeper \--link kafka:kafka -p 9001:9000 \--restart=always \--env ZK_HOSTS=zookeeper:2181 \sheepkiller/kafka-manager
?
?
3.訪問kafkamanager
http://服務器公網ip:9001/
?
?