面向訊息的持久通訊與面向流的通訊

2021-08-21 15:50:10 字數 1991 閱讀 1869

一、面向訊息的持久通訊  

訊息佇列系統為持久非同步通訊提供多種支援,本質是提供訊息的中介儲存能力,這樣就不需要訊息傳送方和接收方在訊息傳輸過程中都保持啟用狀態。

訊息佇列模型

應用程式可以通過在特定佇列中插入訊息來進行通訊。訊息由一系列通訊伺服器依次進行**,最終送達目的地。即使在訊息傳送過程中接收方的機器未處於執行狀態,訊息也能送到。

訊息佇列系統的重要特徵之一是,通常只能確保傳送方發出的訊息最終能插入到接收方的佇列中,並不保證訊息到達的時間,甚至不保證訊息一定會得到讀取,這完全由接收方來決定。

訊息轉換器可以像乙個訊息格式重新編排工具一樣簡單。比如說,假定輸入的小細胞含有資料庫中的一張表,其中,記錄之間通過特殊的代表記錄結束的分隔符來分割,而記錄中的字段長度已知且固定。如果目的應用程式希望使用另外的分隔符來分割記錄,並且希望欄位是可變長度,就需要使用訊息轉換器來講訊息格式轉換為目的應用程式所能夠接受的格式。

普通資訊佇列系統的目標並不僅僅在於為終端使用者提供支援,建立這樣的系統要解決的重要問題是:要為程序間的持久通訊提供支援,無論該程序是在執行使用者程式,在處理對資料庫的訪問,還是在進行計算等,都必須能夠支援其通訊。 比如說:乙個設計若干個資料庫查詢可能需要切分成為幾個子查詢,然後將這些子查詢**給相應的資料庫。在這個過程中可以利用訊息佇列系統所提供的基本方法來講每個子查詢打包進訊息中去,然後將訊息傳送給相應的資料庫。

二、面向流的通訊

1、為連續**提供支援

**是指傳送資訊的手段,其中包括儲存以及傳輸介質。**的重要型別是資訊的表示方式,也就是資訊在計算機系統中的編碼方式。比如文字一般是用ascii或unicode來進行編碼。影象可以採用gif或jpeg等格式來表示。而計算機中的音訊流可以採用諸如pcm的16位樣本來編碼。

2、資料流

對於連續資料流來說,同步是極為關鍵的。為了捕捉同步狀況,要對不同傳輸模式做出區分。在非同步傳輸模式下,流中的資料項是逐個傳輸的,但是對於某一項在何時進行傳輸並沒有進一步的限制。比如:檔案可以作為資料流來傳輸,但是每一資料項傳輸完成的確於時間通常是無關緊要的。

在同步傳輸模式下,資料流中的每乙個單元都定義了乙個端到端最大延遲時間。比如:感測器以某個特定的取樣率對溫度值進行取樣,然後將取樣結果通過網路傳送給操作員。

等待傳輸模式,在這種模式中資料單元必須按時傳輸,也就是資料傳輸的端到端延遲時間必須同時受到上限和下限的約束,端到端延遲時間上限和下限也稱為邊界延遲抖動。這種傳輸模式對分布式多**系統極為有用。

3、同步機制

那麼到底是如何做到同步的呢?包含兩方面問題,(1)兩個流同步的基本機制(2)在網路環境下這些機制的分布式版本

同步是通過顯式地對單個流的資料單元進行操控來實現的。在本質上,存在乙個專門在少數幾個簡單流上執行讀寫操作的程序。

那麼最後總結:

面向訊息的中介軟體模型一般提供持久非同步通訊,用在rpc不適用的場合。主要用來協助高度分散的資料庫繼承進大規模資訊系統中。

流是一種完全不同的通訊方式,主要問題是兩個連續的訊息是否有時間上的練習。在連續資料流中,每個小弟都規定了端到端的最大延遲時間。傳送的訊息還要受到端到端最小延遲時間的約束

面向訊息的持久通訊與面向流的通訊

一 面向訊息的持久通訊 訊息佇列系統為持久非同步通訊提供多種支援,本質是提供訊息的中介儲存能力,這樣就不需要訊息傳送方和接收方在訊息傳輸過程中都保持啟用狀態。訊息佇列模型 應用程式可以通過在特定佇列中插入訊息來進行通訊。訊息由一系列通訊伺服器依次進行 最終送達目的地。即使在訊息傳送過程中接收方的機器...

物件導向與面向過程的區別

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...

面向過程與物件導向的區別

面向過程 1 現實世界是物件,分析階段是物件,在設計及開發階段是方法與方法之間的呼叫,與現實世界 分析階段不統一,容易出現偏差,增加了開發的難度,容易 出問題。2 因為方法與方法之間的直接呼叫,讓我們系統依賴底層具體實現,而不是 依賴高層概念及巨集觀的商業邏輯。3 方法與方法之間有呼叫 的藕合度太,...