一、訊息佇列
一般我們會簡稱它為mq(message queue),「訊息佇列」是在訊息的傳輸過程中儲存訊息的容器。
1、訊息佇列主要用於做什麼?
1)非同步處理
2)應用解耦
3)流量削峰
4)作為發布 / 訂閱系統實現乙個微服務級系統間的觀察者模式
5)連線流計算任務和資料
6)用於將訊息廣播給大量接收者
2、訊息中介軟體的兩種實現模式:
常見的訊息中介軟體有active mq , rabbit mq ,rocket mq, kafka中,只有active mq完全實現了jms的規範,kafka則通過消費組和主題分割槽的方式讓發布訂閱模型同時也具有了點對點模式的訊息收發能力。
二、kafka簡介
1、kafka是由apache軟體**會開發的乙個開源流處理平台,由scala和j**a編寫,是一種高吞吐量的分布式發布訂閱訊息系統。
1)kafka有四個核心api:
2、kafka基礎架構
簡單的說,就是生產者生產訊息,kafka集群管理訊息,消費者消費訊息,zookeeper註冊訊息
三、kafka名詞解釋
producer:producer即生產者,訊息的產生者,生產message傳送到topic,是訊息的入口。
consumer:消費者,即訊息的消費方,訂閱topic並消費message,是訊息的出口。
consumer group:消費者組,乙個consumer group包含多個consumer。
broker:kafka把伺服器的物理機稱為 broker(kafka節點),乙個kafka節點就是乙個broker,多個broker可以組成乙個kafka集群,kafka集群能夠同時負責多個topic的分發。
topic:訊息的主題,可以理解為訊息的分類,每條發布到kafka集群的訊息都有乙個類別,這個類別被稱為topic,在每個broker上可以建立多個topic。
message:每一條傳送的訊息主體。
partition:topic物理上的分割槽,每個topic可以有多個分割槽,每個分割槽是乙個有序的佇列;分割槽的作用是做負載,提高kafka的吞吐量。
segment:partition物理上由多個segment組成,每個segment存著message資訊。
offset:偏移量,理解為訊息partition中的索引即可。kafka的儲存檔案都是按照offset.kafka來命名,用offset做名字的好處是方便查詢。例如你想找位於2049的位置,只要找到2048.kafka的檔案即可。當然the first offset就是00000000000.kafka。
zookeeper(分布式協調中心):kafka集群依賴zookeeper來儲存集群的的元資訊,來保證系統的可用性。
replication:副本,為保證集群中的某個節點發生故障時,該節點上的partition資料不丟失,且kafka仍然能夠繼續工作,kafka提供了副本機制,乙個topic的每個分割槽都有若干個副本,副本存在於不同的節點broker上,且副本數小於節點broker的數,乙個leader和若干個follower。
leader:每個分割槽多個副本的「主」,生產者傳送資料的物件,以及消費者消費資料的物件都是leader。
follower:每個分割槽多個副本中的「從」,實時從leader中同步資料,保持和leader資料的同步。leader發生故障時,某個follower會成為新的leader,同乙個partition的leader和follower不會存在於同乙個broker。
四、kafka的優勢和劣勢
1)優勢
2)劣勢
五、kafka的應用場景
一般應用在大資料日誌處理或對實時性(少量延遲),可靠性(少量丟資料)要求稍低的場景使用。
生產者傳送一條訊息到queue,只有乙個消費者能收到
Vim的認識和操作
vi是 visual inte ce 的簡稱,它在linux上的地位就彷彿edit程式在dos上一樣。它可以執行輸出 刪除 查詢 替換 塊操作等眾多文字操作,而且使用者可以根據自己的需要對其進行定製。vi不是乙個排版程式,它不象word或wps那樣可以對字型 格式 段落等其他屬性進行編排,它只是乙個...
認識Linux作業系統
查詢linux系統的基本概況 第一步 通過搜尋引擎搜尋 linux 閱讀與其有關的資料。收集搜尋引擎搜尋到的網頁 1 unix是大型機用的,主要特點是支援多使用者同時作業系統和共享系統資源。一 股人接觸不到unix,一般只有大型公司才用到。2 linux是一套免費使用和自由傳播的類unix作業系統。...
帶你認識作業系統
注意 作業系統的學習,不要固定在某一種自己常用的作業系統中,從而對作業系統的知識理解產生偏差。定義作業系統 operrating system 簡稱 os 是乙個管理計算機系統資源 控制程式執行的系統軟體,它為使用者提供了乙個方便 安全 可靠的工作環境和介面 目標 作用 單道批處理系統 多道批處理系...