sip訊息型別和訊息格式
SIP訊息主要分為兩大類:
一類是由客戶端發往伺服器的請求訊息(Request);
一類是由伺服器發往客戶端的應答訊息(Response).
一個基本的SIP訊息包括起始行、一個或多個頭欄位、說明頭欄位結束的空行和一個可選的訊息體。
訊息=起始行(包括請求行/狀態行;請求行規定了請求的類別,而狀態行指出了每個請求的狀態,比如是成功還是失敗。如果是失敗的話還要給出失敗的原因或型別。)
*頭欄位
CRLF
[訊息體] (訊息首部給出了關於請求或應答的更多資訊一般包括訊息的來源、規定的訊息接收方,另外還包括一些其他方面的重要資訊。訊息體通常描述將要建立會議的型別包括所交換媒體的描述,但不具體定義訊息體的內容或結構,其結構或內容使用另外一個協議來描述,就是會話描述協議SDP。)
請求訊息
請求行 = 方法 + 空格 + 請求地址 + SIP版本號 + 空行
通過一個請求行作為起始行,請求行包括了方法名、請求的URL、協議版本號、中間用空格分開。
六種請求方法:
INVITE 發出呼叫會話請求
ACK INVITE請求被最終請求
BYE 釋放一個呼叫會話
CANCEL 取消掛起的呼叫
REGISTER 登記註冊使用者代理
OPTIONS 查詢伺服器能力
應答訊息
狀態行 = SIP版本 + 空格 + 狀態碼 + 空格 + 相關文字短語 + 空行
SIP應答訊息狀態碼與功能
型別 狀態碼 狀態說明
臨時應答(1XX) 100 Trying 正在處理中
180 Ringing 振鈴
181 call being forwarder 呼叫正在前向
182 queue 排隊
181* session progress 會話進行
會話成功(2XX) 200 OK 會話成功
重定向(3XX)
300 multiple 多重選擇
301 moved permanently 永久移動
302 moved temporaily 臨時移動
305 use proxy 使用者代理
380 alternative service 替代服務
請求失敗(4XX)
400 bad request 錯誤請求
401unauthorized 未授權
402 payment required 付費要求
403 forbidden 禁止
404 not found 未發現
405 method no allowed 方法不允許
406 not acceptable 不可接受
407 proxy authentication required 代理需要認證
408 request timeout 請求超時
410 gone 離開
413 request entity too large 請求實體太大
414 request-url too long 請求URL太長
415 unsupported media type 不支援的媒體型別
416 unsupported url scheme 不支援的URL計劃
420 bad extension 不良擴充套件
421 extension required 需要擴充套件
423 interval too brief 間隔太短
480 temporarily unavailable 臨時失效
481 call/transaction does not exist 呼叫/事務不存在
482 loop detected 發現環路
483 too many hops 跳數太多
484 address incomplete 地址不完整
485 ambiguous 不明朗
486 busy here 這裡忙
487 request terminated 請求終止
488 not acceptable here 這裡請求不可接受
491 request pending 未決請求
493 undecipherable 不可辨識
伺服器失敗(5XX)
500 server internal error 伺服器內部錯誤
501 not implemented 不可執行
502 bad gateway 壞閘道器
503 service unavailable 服務無效
504 server time-out 伺服器超時
505 version not supported 版本不支援
513 message too large 訊息太大
全域性性錯誤(6XX)
600 busy everywhere 全忙
603 decline 丟棄
604 does not exist anywhere 不存在
606 not acceptable 不可接受
SIP應答程式碼(這個是詳細的應答碼解釋)
應答碼是包含並且擴充套件了HTTP/1.1應答碼。並不是所有的HTTP/1.1應答碼都適當應用,只有在這裡指出的是適當的。其他HTTP/1.1應答碼不應當使用。並且,SIP也定義了新的應答碼系列,6xx。
1 臨時應答1xx
臨時應答,也就是訊息性質的應答,標誌了對方伺服器正在處理請求,並且還沒有決定最後的應答。如果伺服器處理請求需要花200ms以上才能產生終結應答的時候,它應當傳送一個1xx應答。
注意1xx應答並不是可靠傳輸的。他們不會導致客戶端傳送一個ACK應答。臨時性質的(1xx)應答可以包含訊息體,包含會話描述。
1.1 100 Trying
這個應答表示下一個節點的伺服器已經接收到了這個請求並且還沒有執行這個請求的特定動作(比如,正在開啟資料庫的時候)。這個應答,就像其他臨時應答一樣,種植了UAC重新傳送INVITE請求。100(Trying)應答和其他臨時應答不同的是,在這裡,它永遠不會被有狀態proxy轉發到上行流中。
1.2 180 Ringing
UA收到INVITE請求並且試圖提示給使用者。這個應答應當出世化一個本地回鈴。
1.3 818 Call is Being Forwarded(呼叫被轉發)
伺服器可以用這個應答程式碼來表示呼叫正在轉發到另一個目的地集合。
1.4 182 Queued
當呼叫的對方暫時不能接收呼叫的時候,並且伺服器決定將呼叫排隊等候,而不是拒絕呼叫的時候,那麼就應當發出這個應答。當被叫方一旦恢復接收呼叫,他會返回合適的終結應答。對於這個呼叫狀態,可以有一個表示原因的短語,比如:”5 calls queued;expected waiting time is 15minutes”。伺服器可以給出好幾個182(Queued)應答告訴呼叫方排隊的情況(比如排隊靠前了等等)。
1.5 183 會話進度
183(Session Progress)應答用於提示建立對話的進度資訊。Reason-Phrase(表達原因的句子)、頭域或者訊息體可以用於提示呼叫進度的更訊息的資訊。
2 成功資訊2xx
這個應答表示請求是成功的。
2.1 200 OK
請求已經處理成功。這個資訊取決於不同方法的請求的應答。
3 轉發請求3XX
3xx系列的應答是用於提示使用者的新位置資訊的,或者為了滿足呼叫而轉發的額外服務地點。
3.1 300 Multiple Choices
請求的地址有多個選擇,每個選擇都有自己的地址,使用者或者(UA)可以選擇合適的通訊終端,並且轉發這個請求到這個地址。
應答可以包含一個具有每一個地點的在Accept請求頭域中允許的資源特性,這樣使用者或者UA可以選擇一個最合適的地址來轉發請求。沒有未這個應答的訊息體定義MIME型別。
這些地址選擇也應當在Contact頭域中列出(20.10節)。不同於HTTP,SIP應答可以包含多個Contact頭域或者一個Contact頭域中具有一個地址列表。UA可以使用Contact頭域來自動轉發或者要求使用者確認轉發。不過,本規範沒有定義自動轉發的標準。
如果被叫方可以在多個地址被找到,並且伺服器不能或者不願意轉發請求的時候,可以使用這個應答來給呼叫方。
3.2 301 Moved Permently
當不能在Request-URI指定的地址找到使用者的時候,請求的客戶端應當使用Contact頭域(20.10)所指出的新的地址重新嘗試。請求者應當用這個新的值來更新本地的目錄,地址本,和使用者地址cache,並且在後續請求中,傳送到這個/這些列出的地址。
3.3 302 Moved Temporarily
請求方應當把請求重新發到這個Contact頭域所指出的新地址(20.10)。新請求的Request-URI應當用這個應答的Contact頭域所指出的值。
在應答中的Expires(20.19節)或者Contact頭域的expires引數定義了這個Contact URI的生存週期。UA或者proxy在這個生存週期內cache這個URI。如果沒有嚴格的有效時見,那麼這個地址僅僅本次有效,並且不能在以後的事務中儲存。
如果cache的Contact頭域的值失敗了,那麼被轉發請求的Request-URI應當再次嘗試一次。臨時URI可以比超時時間更快的失效,並且可以有一個新的臨時URI。
3.4 305 Use Proxy
請求的資源必須通過Contact頭域中指出的proxy來訪問。Contact頭域指定了一個proxy的URI。接收到這個應答的物件應當通過這個proxy重新發送這個單個請求。305(UseProxy)必須是UAS產生的。
3.5 380 Alternative Service
呼叫不成工,但是可以嘗試另外的服務。另外的服務在應答的訊息體中定義。訊息體的格式在這裡沒有定義,可能在以後的規範中定義。
4 請求失敗4xx
4xx應答定義了特定伺服器響應的請求失敗的情況。客戶端不應當在不更改請求的情況下重新嘗試同一個請求。(例如,增加合適的認證資訊)。不過,同一個請求交給不同伺服器也許就會成功。
4.1 400 Bad Request
請求中的語法錯誤。Reason-Phrase應當標誌這個詳細的語法錯誤,比如”Missing Call-ID header field”。
4.2 401 Unauthorized
請求需要使用者認證。這個應答是由UAS和註冊伺服器產生的,當407(Proxy Authentication Required)是proxy伺服器產生的。
4.3 402 Payment Required
保留/以後使用
4.4 403 Forbidden
服務端支援這個請求,但是拒絕執行請求。增加驗證資訊是沒有必要的,並且請求應當不被重試。
4.5 404 Not Found
伺服器返回最終資訊:使用者在Request-URI指定的域上不存在。當Request-URI的domain和接收這個請求的domain不匹配的情況下, 也會產生這個應答。
4.6 405 Method Not Allowed
伺服器支援Request-Line中的方法,但是對於這個Request-URI中的地址來說,是不允許應用這個方法的。
應答必須包括一個Allow頭域,這個頭域包含了指定地址允許的方法列表。
4.7 Not Acceptable
請求中的資源只會導致產生一個在請求中的Accept頭域外的,內容無法接收的錯誤。
4.8 407 Proxy Authentication Required
這個返回碼和401(Unauthorized)很類四,但是標誌了客戶端應當首先在proxy上通過認證。SIP對認證的訪問請參見26節和22.3節。
這個返回碼用於應用程式訪問通訊閘道器(比如,電話閘道器),而很少用於被叫方要求認證。
4.9 408 Request Timeout
在一段時間內,伺服器不能產生一個終結應答,例如,如果它無法及時決定使用者的位置。客戶端可以在稍後不更改請求的內容然後重新嘗試請求。
4.10 410 Gone
請求的資源在本伺服器上已經不存在了,並且不知道應當把請求轉發到哪裡。這個問題將會使永久性的。如果伺服器不知道,或者不容易檢測,這個資源消失是臨時性質的還是永久性質的,那麼應當返回一個404(Not Found)。
4.11 413請求實體過大。
伺服器拒絕處理請求,因為這個請求的實體超過了伺服器希望或者能夠處理的大小。這個伺服器應當關閉連線避免客戶端重發這個請求。
如果這個情況是暫時的,那麼服務端應當包含一個Retry-After頭域來表明這是一個暫時的故障,並且客戶端可以過一段時間再次嘗試。
4.12 414 Request-URI Too Long
伺服器拒絕這個請求,因為Request-URI超過了伺服器能夠處理的長度。
4.13 415 Unsupported Media Type
伺服器由於請求的訊息體的格式本伺服器不支援,所以拒絕處理這個請求。這個伺服器必須根據內容的故障型別,返回一個Accept,Accpet-Encoding,或者Accept-Language頭域列表。UAC根據8.1.3.5節定義的方法處理這個應答。
4.14 416 Unsupported URI Scheme
伺服器由於不支援Request-URI中的URI方案而終止處理這個請求。客戶端處理這個應答參照8.1.3.5。
4.15 Bad Extension
伺服器不知道在請求中的Proxy-Require(20.29)或者Require(20.32)頭域所指出的協議擴充套件。伺服器必須在Unsupported頭域中列出不支援的擴充套件。UAC處理這個應答請參見8.1.3.5
4.16 421Extension Required
UAS需要特定的擴充套件來處理這個請求,但是這個擴充套件並沒有在請求的Supported頭域中列出。具有這個應答碼的應答必須包含一個Require頭域列出所需要的擴充套件。
UAS不應當使用這個應答除非它真的不能給客戶端提供有效的服務。相反,如果在Support頭域中沒有列出需要的擴充套件,伺服器應當根據基準的SIP相容的方法和客戶端支援的擴充套件來進行處理。
4.17 423 Interval Too Brief
伺服器因為在請求中設定的資源重新整理時間(或者有效時間)過短而拒絕請求。這個應答可以用於註冊伺服器來拒絕那些Contact頭域有效期過短的註冊請求。這個應答的用法和相關的Min-Expires頭域在10.2.8,10.3,20.23節中介紹和說明。
4.18 480 Temporarily Unavailable
請求成功到達被叫方的終端系統,但是被叫方當前不可用(例如,沒有登陸,或者登陸了但是狀態是不能通訊,或者有”請勿打擾”的標記)。應答應當在Retry-After中標誌一個合適的重發時間。這個使用者也有可能在其他地方是有效的(在本伺服器中不知道)。Reason-Phrase(原因短句)應當提示更詳細的原因,為什麼被叫方暫時不可用。這個值應當是可以被UA設定的。狀態碼486(Busy Here)可以用來更精確的表示本請求失敗的特定原因。
這個狀態碼也可以是轉發服務或者proxy伺服器返回的,因為他們發現Request-URI指定的使用者存在,但是沒有一個給這個使用者的合適的當前轉發的地址。
4.19 481 Call/Transaction Does Not Exist
這個狀態表示了UAS接收到請求,但是沒有和現存的對話或者事務匹配。
4.20 482 Loop Detected
伺服器檢測到了一個迴圈(16.3/4)
4.21 483 Too Many Hops
伺服器接收到了一個請求包含的Max-Forwards(20.22)頭域是0
4.22 484 Address InComplete
伺服器接收到了一個請求,它的Request-URI是不完整的。在原因短語中應當有附加的資訊說明。這個狀態碼可以和撥號交疊。在和撥號交疊中,客戶端不知道撥號串的長度。它傳送增加長度的字串,並且提示使用者輸入更多的字串,直到不在出現484(Address Incomplete)應答為止。
4.23 485 Ambiguous
Request-URI是不明確的。應答可以在Contact頭域中包含一個可能的明確的地址列表。這個提示列表肯囊個在安全性和隱私性對使用者或者組織造成破壞。必須能夠由配置決定是否以404(NotFound)代替這個應答,又或者禁止對不明確的地址使用可能的選擇列表。
給帶有Request-URI的請求的一個應答例子:
sip:
SIP/2.0 485 Ambiguous
Contact: Carol Lee
Contact: Ping Lee
Contact: Lee M.Foote
部分email和語音郵箱系統提供了這個功能。這個狀態碼和3xx狀態碼不同:對於300來說,它是假定同一個人或者服務有不同的地址選擇。所以對3xx來說,自動選擇系統或者連續查詢就有效,但是對485(Ambiguous)應答來說,一定要使用者的干預。
4.24 486 Busy Here
當成功聯絡到被叫方的終端系統,但是被叫方當前在這個終端系統上不能接聽這個電話,那麼應答應當回給呼叫方一個更合適的時間在Retry-After頭域重試。這個使用者也許在其他地方有效,比如電話郵箱系統等等。如果我們知道沒有其他終端系統能夠接聽這個呼叫,那麼應當返回一個狀態碼600(Busy Everywhere)。
4.25 487 Request Terminated
請求被BYE或者CANCEL所終止。這個應答永遠不會給CANCEL請求本身回覆。
4.26 488 Not Acceptable Here
這個應答和606(Not Acceptable)有相同的含義,但是隻是應用於Request-URI所指出的特定資源不能接受,在其他地方請求可能可以接受。
包含了媒體相容性描述的訊息體可以出現在應答中,並且根據INVITE請求中的Accept頭域進行規格化(如果沒有Accept頭域,那麼就是application/sdp)。這個應答就像給OPTIONS請求的200(OK)應答的訊息體一樣。
4.27 491 Request Pending
在同一個對話中,UAS接收到的請求有一個依賴的請求正在處理。14.2描述了這種情況應當怎樣解決。
4.28 493 Undecipherable
UAS接收到了一個請求,包含了一個加密的MIME,並且不知道或者沒有提供合適的解密金鑰。這個應答可以包含單個包體,這個包體包含了合適的公鑰,這個公鑰用於給這個UAS通訊中加密包體使用的。細節描述在23.2節。
5 Server Failure 5xx
5xx應答是當伺服器本身故障的時候給出的失敗應答。
5.1 500 Server Internal Error
伺服器遇到了未知的情況,並且不能繼續處理請求。客戶端可以顯示特定的錯誤情況,並且可以在幾秒種以後重新嘗試這個請求。
如果這個情況是臨時的,伺服器應當在Retry-After頭域標誌客戶端過多少秒鐘之後重新嘗試這個請求。
5.2 501 Not Implemented
伺服器沒有實現相關的請求功能。當UAS不認識請求的方法的時候,並且對每一個使用者都無法支援這個方法的時候,應當返回這個應答。(proxy不考慮請求的方法而轉發請求)。
注意405(Method Not Allowed)是因為伺服器實現了這個請求方法,但是這個請求方法在特定請求中不被支援。
5.3 502 Bad Gateway
如果伺服器,作為gateway或者proxy存在,從下行伺服器上接收到了一個非法的應答(這個應答對應的請求是本伺服器為了完成請求而轉發給下行伺服器的)。
5.4 503 Service Unavailable
由於臨時的過載或者伺服器管理導致的伺服器暫時不可用。這個伺服器可以在應答中增加一個Retry-After來讓客戶端重試這個請求。如果沒有Retry-After指出,客戶端必須就像收到了一個500(Server Internal Error)應答一樣處理。
客戶端(proxy或者UAC)收到503(Service Unavailable)應當嘗試轉發這個請求到另外一個伺服器處理。並且在Retry-After頭域中指定的時間內,不應當轉發其他請求到這個伺服器。
作為503(Service Unavaliable)的替代,伺服器可以拒絕連線或者把請求扔掉。
5.5 504 Server Time-out
伺服器在一個外部伺服器上沒有收到一個及時的應答。這個外部伺服器是本伺服器用來訪問處理這個請求所需要的。如果從上行伺服器上收到的請求中的Expires頭域超時,那麼應當返回一個408(Request TimeOut)錯誤。
5.6 505 Version Not Supported
伺服器不支援對應的SIP版本。伺服器是無法處理具有客戶端提供的相同主版本號的請求,就會導致這樣的錯誤資訊。
5.7 Message To Large
伺服器無法處理請求,因為訊息長度超過了處理的長度。
6 Global Failures 6xx
6xx應答意味這伺服器給特定使用者有一個最終的資訊,並不只是在Request-URI的特定例項有最終資訊。
6.1 600 Busy Everywhere
成功聯絡到被叫方的終端系統,但是被叫方處於忙的狀態,並不打算接聽電話。這個應答可以通過增加一個Retry-After頭域更明確的告訴呼叫方多久以後可以繼續呼叫。如果被叫方不希望提示拒絕的原因,被叫方應當使用603(Decline)。只有當終端系統知道沒有其他終端節點(比如語音郵箱系統)能夠訪問到這個使用者的時候才能使用這個應答。否則應當返回一個486(Busy Here)的應答。
6.2 603 Decline
當成功訪問到被叫方的裝置,但是使用者明確的不想應答。這個應答可以通過增加一個Retry-After頭域更明確的告訴呼叫方多久以後可以繼續呼叫。只有當終端知道沒有其他任何終端裝置能夠響應這個呼叫的勢能才能給出這個應答。
6.3 604 Does Not Exists Anywhere
伺服器驗證了在請求中Request-URI的使用者資訊,哪裡都不存在
6.4 606 Not Acceptable
當成功聯絡到一個UA,但是會話描述的一些部分比如請求的媒體,頻寬,或者地址型別不被接收。
606(NotAcceptable)應答意味著使用者希望通訊,但是不能充分支援會話描述。606(Not Acceptable)應答可以在Warning頭域中包含一個原因列表,用於解釋為何會話描述不能被支援。警告原因程式碼在20.43節中列出。
在應答中,可以出現一個包含媒體相容性描述的訊息體,這個訊息體的格式根據INVITE請求中的Accept頭域指出的格式進行規格化(如果沒有Accept頭域,那麼就是application/sdp),就像給OPTIONS親求的200(OK)應答中的訊息一樣。
我們希望這些媒體協商不要經常需要,並且當一個新使用者被邀請加入已經存在的會話的時候,這個媒體協商可能不需要。這取決於邀請的初始化者是否需要對606(Not Acceptable)進行處理。
這個應答只有當客戶端知道沒有其他終端能夠處理這個請求的時候才能發出。
相關推薦
sip訊息型別和訊息格式
SIP是一個基於文字的協議,使用的是UTF-8字符集. SIP訊息主要分為兩大類: 一類是由客戶端發往伺服器的請求訊息(Request); 一類是由伺服器發往客戶端的應答訊息(Response). 一個基本的SIP訊息包括起始行、一個或多個頭欄位、說明頭欄位結束的空行和一個可選的訊息體。 訊息=起始行(包括請
(六)Hive SQL之資料型別和儲存格式
(六)Hive SQL之資料型別和儲存格式 目錄 一、資料型別 1、基本資料型別 2、複雜型別 二、儲存格式 (1)textfile (2)SequenceFile
Hive-5-Hive SQL之資料型別和儲存格式
原文地址:https://www.cnblogs.com/qingyunzong/p/8733924.html 一、資料型別 1.1、基本資料型別 Hive 支援關係型資料中大多數基本資料型別,和其他的SQL語言一樣,這些都是保留字。需要注意的是所有的這些資料型別都是對Java中介面的實
Spring Cloud Stream + RabbitMQ 訊息生成和訊息消費
在本 DEMO中有兩個節點互為訊息的生產者和訊息消費者。 一、節點1 1. pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/P
RabbitMQ應用例項Python版-訊息確認和訊息持久化
訊息確認 當處理一個比較耗時得任務的時候,你也許想知道消費者(consumers)是否執行到一半就掛掉。當前的程式碼中,當訊息被RabbitMQ傳送給消費者(consumers)之後,馬上就會在記憶體中移除。這種情況,你只要把一個工作者(worker)停止,正在處理的訊
springboot整合rabbitmq,根據查詢的資訊建立多個訊息中心和訊息佇列,並實現不同的訊息傳送到不同的訊息中心
今天接到一個需求,就是在傳送訊息到rabbitmq訊息中心的時候,需要根據裝置型別,將訊息傳送到不同的訊息佇列,因此要建立不同的訊息佇列。 修改之前是把配置資訊寫在配置文中,專案啟動時,獲取配置檔案中的配置資訊,建立訊息佇列。 修改後的邏輯
RabbitMQ-訊息應答和訊息持久化
1.訊息應答 Ack (Message Acknowledgement) 訊息應答預設開啟 false autoAck = true (自動確認模式) 一旦rabbitMQ將訊息分發給消費者,就會從記憶體中刪除 這種情況下,如果消費者未處理完訊息就異常結束,
runtime從入門到精通(五)—— 訊息傳送和訊息轉發
前一篇文章中,我們介紹了runtime相關的術語的資料結構,檢視連結:runtime相關的術語的資料結構。本文主要講解與runtime相關的訊息傳送和訊息轉發兩個重要模組。 訊息傳送 訊息傳送舉例:下面這個OC程式碼 [person read:book
ROS學習之 cpp訊息釋出者和訊息訂閱者
wiki連結: http://wiki.ros.org/roscpp/Overview/Publishers%20and%20Subscribers一、釋出一個話題 其它相關連結: ros::NodeHandle,ros::NodeHandle::
《Hive程式設計指南》讀書筆記 | 一文看懂Hive的資料型別和檔案格式
Hive支援關係型資料庫中的大多數基本資料型別,同時也支援關係型資料庫中很少出現的3種集合資料型別。和大多數資料庫相比,Hive具有一個獨特的功能,那就是其對於資料在檔案中的編碼方式具有非常大的靈活性。大多數資料庫對資料具有完全的控制,其包括對資料儲存到磁碟的過程的控制,也包括對資料生命週期的控制。而Hi
整車控制器(VCU)開發 之 CAN訊息的Intel格式和Motorola格式說明
經常有做DBC檔案的朋友不瞭解CAN通訊協議中的intel格式和Motorola格式的區別,導致引入一些不必要的錯誤。和一些作者長篇大論來講不同,本文章可能很短,主要是為了防止長篇大論把讀者繞暈,從而使讀者失去興趣,最後還是沒搞明白,白白浪費時間。 1、為什麼有2種格式?
SAP修改訊息內容和報錯型別(SE91和OBA5)
SAP訊息也是這樣,你可將所有能忽略的訊息ignore讓它鞠躬盡瘁死而後已為你工作. 從是否允許你configure層次分兩種: configurable和non-configurable.
SpringBoot整合ActiveMQ訊息佇列和雙向佇列、點對點與釋出訂閱
ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。 &nbs
rabbitmq訊息傳送確認和消費訊息手動刪除訊息
0.application.properties新增如下配置 # 訊息傳送至exchange callback spring.rabbitmq.publisher-confirms=true # 訊息傳送至queue 失敗才callback spring.rabbitmq.publi
JMS訊息確認和事務
保證訊息傳送 保證訊息傳送有3個主要部分:訊息自主性,儲存並轉發以及底層訊息確認,下面具體看一下這些概念; 1.訊息自主性 訊息是自包含的自主性實體,在設計分散式訊息應用程式時,要將此作為頭條法則;當JMS客戶端傳送一條訊息時,它就完成了它的所有工作,一旦該資料被傳送出去,它就被認為
Spring-Cloud-Config訊息匯流排和高可用
前言 上文中簡單的介紹了Spring-Cloud-Config如何使用,如何手動更新配置檔案,並且在文末提出了幾個疑問,其中包括多個Client節點如何更新,Server端如何保證高可用性等;本文將重點介紹通過使用Spring Cloud Bus來批量更新客戶端,以及Server如何保證高可
Rabbitmq交換器Exchange和訊息佇列
通常我們談到佇列服務, 會有三個概念: 發訊息者、佇列、收訊息者,RabbitMQ 在這個基本概念之上, 多做了一層抽象, 在發訊息者和 佇列之間, 加入了交換器 (Exchange). 這樣發訊息者和佇列就沒有直接聯絡, 轉而變成發訊息者把訊息給交換器, 交換器根據排程策略再把訊息再給佇列。 交換器的功能
activemq訊息機制和持久化介紹
前面一節簡單學習了activemq的使用,我們知道activemq的使用方式非常簡單有如下幾個步驟: 建立連線工廠 建立連線 建立會話 建立目的地 建立生產者或消費者 生產或消費訊息 關閉生產
activeMQ的訂閱者和訊息佇列的應用
1.PTP模型 PTP(Point-to-Point)模型是基於佇列(Queue)的,對於PTP訊息模型而言,它的訊息目的是一個訊息佇列(Queue),訊息生產者每次傳送訊息總是把訊息送入訊息佇列中,訊息消費者總是從訊息佇列中讀取訊息.先進佇列的訊息將先被訊息消費者讀取. 傳送方發訊息到佇列
原 Win32 SDK基礎(11)—— 訊息佇列和GetMessage/PeekMessage、SendMessage/Postmesage
版權宣告:本文為博主原創文章,若轉載請註明出處;若有錯誤,歡迎指出;若有問題,歡迎留言。 https://blog.csdn.net/lzhui1987/article/details/70144952 一、訊息佇列 1.1 訊息佇列