rabitmq是什麼?
rabbitmq是一款使用erlang語言開發,基於amqp協議的訊息中介軟體.
rabbitmq的應用場景是什麼?
1.非同步通知:發簡訊,郵件的時候,採用非同步處理的方式,客戶無需等待通知結果
2.流量削鋒:在電商中大秒殺活動中,採用佇列長度來控制請求的數量,超過佇列的長度,則返回給客戶響應失敗的介面.
3.應用解耦:訂單業務在下訂單之後,我們需要去庫存業務中減少庫存只需要把減庫存的訊息寫入到訊息佇列中,就無需關心後續操作 ,減少應用之間的耦合
4.訊息通知:可以即時通訊,使用點對點通訊,雙方同時訂閱佇列,雙方即是生產者,又同時是消費者.
如何保證rabbitmq的訊息不被重複消費?
為訊息標記乙個全域性唯一的id,傳送到佇列的時候,就把該訊息的id作為key存入到redis,這樣在消費的時候去redis中判斷是否存在該訊息的id即可.
**
RabbitMQ的面試問題
為什麼使用訊息佇列啊?訊息佇列都有什麼優點和缺點?有點有上面說的解耦,非同步,削峰 缺點呢?因為插入了mq這個訊息中介軟體,如果mq訊息中介軟體掛掉了,那麼像上面說的解耦的情況,服務a的訊息給bcdef等伺服器就傳送不出去了,如果mq沒有掛掉bc都從a中獲取了訊息,修改了資料庫的資料,但是d服務的監...
SVM常見面試問題
答 幾何間隔與樣本的誤分次數間存在關係 其中的分母就是樣本到分類間隔距離,分子中的r是所有樣本中的最長向量值 答 會,超平面會靠近樣本少的類別。因為使用的是軟間隔分類,而如果對所有類別都是使用同樣的懲罰係數,則由於優化目標裡面有最小化懲罰量,所以靠近少數樣本時,其懲罰量會少一些。比如 假設理想的分隔...
C 常見面試問題
一 抽象與介面的區別 1,抽象 abstract 1 抽象類中可以有抽象方法,也可沒有 2 抽象方法包含實現,也可以由子類實現 3 抽象類不能被sealed修飾,只能使用abstract關鍵字 4 抽象方法不能在抽象類外部宣告 5 抽象類只能單繼承 6 可以有虛方法 virtual 在不同的繼承中,...