點對點消息系統:生產者發送一條消息到queue,一個queue可以有很多消費者,但是一個消息只能被一個消費者接收,當沒有消費者可用時,這個消息會被保存直到有一個可用的消費者,所以Queue實現了一個可靠的負載均衡。
發布訂閱消息系統:發布者發送到topic的消息,只有訂閱了topic的訂閱者才會收到消息。topic實現了發布和訂閱,當你發布一個消息,所有訂閱這個topic的服務都能得到這個消息,所以從1到N個訂閱者都能得到這個消息的拷貝。
kafka介紹
Apache Kafka是一種高吞吐量的分布式發布訂閱消息系統。它最初由LinkedIn公司開發,之后成為Apache項目的一部分。
1、下載Kafka
cd /root/soft wget https://mirrors.bfsu.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz
2、解壓
tar -zxvf kafka_2.11-2.4.1.tgz cd /root/soft/kafka_2.11-2.4.1
3、修改 kafka-server 配置文件
vim /root/soft/kafka_2.11-2.4.1/config/server.properties 修改其中的: broker.id=0 log.dir=/usr/local/kafka/kafka-logs #配置zookeeper管理kafka的路徑 zookeeper.connect=localhost:2181 #配置kafka的監聽端口 listeners=PLAINTEXT://:9092
#把kafka的地址端口注冊給zookeeper,如果是遠程訪問要改成外網IP advertised.listeners=PLAINTEXT://203.195.205.63:9092
4、啟動 Kafka 服務
Kafka依賴zk,需先啟動zk。
4.1、啟動 zk
cd /root/soft/zookeeper-3.4.14/bin ./zkServer.sh start #啟動 ./zkServer.sh stop #關閉
4.2、啟動 Kafka
使用 kafka-server-start.sh 啟動 kafka 服務:
cd /root/soft/kafka_2.11-2.4.1/bin
##Kafka啟動方法一
./kafka-server-start.sh ../config/server.properties
##Kafka啟動方法二
./kafka-server-start.sh ../config/server.properties > /logs/kafka.log 2>&1 &
5、驗證kafka是否可以使用
5.1、進入 /root/soft/kafka_2.11-2.4.1/bin 目錄下 $ cd /root/soft/kafka_2.11-2.4.1/bin 5.2、運行kafka生產者發送消息 $ ./kafka-console-producer.sh --broker-list localhost:9092 --topic sun 發送消息 > aa 5.3、運行kafka消費者接收消息 $ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning aa 5.4、查看主題列表 ./kafka-topics.sh --list --zookeeper localhost:2181 sun
