訊息中介軟體
什麼是mq
為什麼要使用mq
1、如何避免訊息重複投遞和重複消費
在生產資料時,消自體中必須要有乙個bizid作為去重依據
在消費一條訊息的時候,自己判斷一下是否已經消費過了
2、訊息丟失,如何保證訊息的可靠性傳輸
訊息丟失,可能出現在生產者,mq,消費者;
生產者丟失:生產者傳送資料到mq的時候,可能因為網路問題半路搞丟了。
可以選擇mq的事務功能,但是會降低吞吐量;
可以使用mq的傳送確認模式,傳送訊息給mq之後等待mq回傳確認訊息,自己需要維護mq分配的唯一id
mq中丟失:mq開啟持久化,把訊息持久化到磁碟
消費者丟失:接收到訊息,還沒處理,程序掛掉了;
在訊息處理完成之後,向mq傳送確認訊息。
3、如何保證訊息的順序性
場景:乙個queue對應多個consumer,無法保證順序
保證順序:乙個queue對應乙個consumer
常見面試題
1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...
常見面試題
1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...
常見面試題
dns解析 發起tcp三次握手,並建立tcp連線 發起http請求 伺服器相應http請求並得到html 伺服器解析html 並對頁面進行渲染然後返回給使用者 首先先進行ioc容器的初始化 ioc 容器的初始化過程分為三步驟 resource 定位 beandefinition 的載入和解析,bea...