kafka的基本應(yīng)用

消息中間件的背景分析

場景分析

進程級別的異步處理

阻塞隊列+線程池


image.png
應(yīng)用程序級別的異步處理

通過第三方的消息中間件

技術(shù)需求

基本需求

消息的接受和發(fā)送,涉及到網(wǎng)絡(luò)(BIO,NIO)
消息的存儲(持久化,非持久化存儲)
消息的序列化和反序列化
消息的確認機制,如何避免重發(fā)

高級需求

消息的有序性
是否支持事務(wù)消息
是否支持集群

kafka的介紹

什么是Kafka

Kafka是一款分布式消息發(fā)布和訂閱系統(tǒng),它的特點是高性能、高吞吐量。

應(yīng)用場景

1 行為跟蹤:kafka可以用于跟蹤用戶瀏覽頁面、搜索及其他行為。
2 日志收集:將應(yīng)用日志收集到Kafka

架構(gòu)設(shè)計

image.png

名詞解釋

1 Broker(中間人):集群的每一臺機器叫做Broker
2 Producer(生產(chǎn)者):將消息push到Broker
3 Consumer(消費者):將消息從Broker中pull
4 Topic(主題):消息的類別
5 Partition(分區(qū)):物理上的概念,一個Topic有一個或多個Partition
6 Consumer Group: 每個消費者都屬于一個group(若不指定默認是group)
7 Topic & Partition: topic邏輯上是一個queue,為了性能的提升,物理上把一個topic分成一個或多個Partition,每一個Partition對應(yīng)一個文件夾,該文件夾存儲的是消息和索引文件。

安裝部署

請參考官網(wǎng)文檔:http://kafka.apache.org/quickstart

kafka的基本操作

具體請參考:http://kafka.apache.org/quickstart

兩個問題

Cannot assign requested address

將 server.properties的配置修改如下

listeners=PLAINTEXT://內(nèi)網(wǎng):9092               
advertised.listeners=PLAINTEXT://外網(wǎng)ip:9092 

參考鏈接:https://blog.csdn.net/qq_17238449/article/details/106119230

Connection to node -1 could not be established. Broker may not be available

將bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning的localhost改為ip地址
參考鏈接:https://www.cnblogs.com/syscn/p/9975528.html

kafka的集群安裝

整體類似于zookeeper的集群安裝
具體請參考http://kafka.apache.org/quickstart

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容