網易雲課堂學習 分布式中介軟體設計篇

2021-10-06 23:59:21 字數 2744 閱讀 1355

單體架構:

所有**都在乙個專案中,耦合度太高,公升級乙個模組需要將所有模組都公升級一遍。

分布式系統架構:(乙個請求需要多個系統協調處理)

基於訊息中介軟體的分布式系統

訊息中介軟體概述

什麼是訊息中介軟體

利用高效可靠的訊息傳遞機制,進行平台無關的資料交流;

並基於資料通訊來進行分布式系統的整合;

通過提供訊息傳遞和訊息排隊模型,它可以在分布式系統下擴充套件程序間的通訊。

訊息中介軟體的應用場景

跨系統資料傳遞、高併發流量削峰、資料非同步處理等等

常用的訊息中介軟體

activemq、rocketmq、rabbitmq、kafka

本質一種具備接受請求、儲存資料、傳送資料等功能的網路應用。

和一般網路應用程式的區別是它主要負責資料的接受和傳遞,所以效能一般高於普通程式。

5大核心組成

協議、持久化機制、訊息分發機制、高可用機制、高可靠機制

協議

什麼是協議?

協議是計算機之間通訊時共同遵守的一組協定,都遵守相同的協定,計算機之間才能相互交流。

是對資料格式和計算機之間交流時必須遵守的規則的正式描述。

協議三要素;

語法:資料與控制資訊的結構或格式;

語義:即要發出何種控制資訊,完成何種動作以及做出何種響應。

時序(同步):事件實現順序的詳細說明

常見協議:

http協議的三要素

語法:http規定了請求報文和響應報文的具體格式。

語義:客戶端主動發起的操作稱為請求。

乙個請求對應乙個響應。

訊息中介軟體的常見協議:amqp、openwire、mqtt、kafka、openmessage

為什麼訊息中介軟體不直接使用http協議?

答:http協議太複雜、且是短連線。

openwire協議主要是activemq使用。

amqp(advanced message queuing protocol)協議:

是高階訊息佇列協議,04年,jpmorgan chase(摩根大通集團)聯合其他公司設計。

特性:事務支援、持久化支援,出生金融行業,在可靠性訊息處理上具備天然的優勢。

mqtt(message queuing telemetry transport)協議:

訊息佇列遙測傳輸,是ibm開發的乙個即時通訊協議,物聯網系統架構中的重要組成部分。

特性:輕量、結構簡單、傳輸快、沒有事務支援、沒有持久機制

使用場景:適用於計算能力有限、低頻寬、網路不穩定的場景。

open message近兩年由阿里發起、與雅虎、滴滴出行、streamlio等公司共同參與創立的分布式訊息中介軟體、流處理領域的應用開發標準。

是國內首個在全球範圍內發起的分布式訊息領域國際標準。

特性:結構簡單、解析快,有事務設計、有持久化設計。

apache rocketmq就是用的這種協議。

kafka協議

是基於tcp的二進位制協議。訊息內部通過長度來分隔,由一些基本資料型別組成。

特性:結構簡單、解析快、無事務設計、有持久化設計。

持久化

什麼是持久化:簡單來說就是將資料存入磁碟,而不是存在記憶體,隨服務重啟而消失,使資料能夠永久儲存叫做持久化。

常用持久化方式:

訊息分發

高可用

高可靠

就是指系統能持續無故障地持續執行。比如乙個系統從來不崩潰、報錯、或崩潰報錯的機率很低,那就是高可靠。

高併發業務場景下,如果不能保證系統的高可靠,那將造成很嚴重的損失。

分布式中介軟體設計篇

利用高效可靠的訊息傳遞機制進行平台無關的資料交流 並基於資料通訊來進行分布式系統的繼承 通過提供訊息傳遞和訊息排隊模型,它可以在分布式環境下擴充套件程序間的通訊 跨系統資料傳遞 高併發流程削峰 資料非同步處理 等等 activemq rabbitmq kafka rocketmq 一種具備接受請求 ...

分布式訊息中介軟體

一 分布式訊息中介軟體入門 訊息中介軟體主要實現分布式系統中解耦 非同步訊息 流量銷鋒 日誌處理等場景。現在生產中用得最多的訊息佇列有 activemq,rabbitmq,kafka,rocketmq 等。jms 規範 類似於 jdbc 的一套介面規範,但不同的是他是面向的訊息服務,提供一套標準 a...

分布式訊息中介軟體 kafka

在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確實kafka在實際應用中被大量的用於日誌系統。首先我們要明白什麼是訊息系統,在kafka官網上對kafka的定義叫 a distributed...