.NET 云原生架構(gòu)師訓練營(模塊二 基礎(chǔ)鞏固 RabbitMQ 業(yè)務(wù)場景詳解)--學習筆記
2.6.5 RabbitMQ -- 業(yè)務(wù)場景詳解
異步處理
應(yīng)用解耦
流量削鋒
日志處理
異步處理
串行方式
并行方式
異步方式
串行方式
_userRepo.Add(user);
_emailService.Send(user);
_smsService.Send(user);
并行方式
_userRepo.Add(user);
var emailTask = _emailService.Send(user);
var smsTask = _smsService.Send(user);
await Task.WhenAll(emailTask, smsTask)
異步方式
var user = await _userRepo.Add(user);
_eventBus.publish(new UserRegisteredEvent(){ userId = user.Id })
return user;
應(yīng)用解耦
訂單系統(tǒng) 調(diào)用 庫存系統(tǒng)
改為
訂單系統(tǒng) 寫入 消息隊列
庫存系統(tǒng) 訂閱 消息隊列
實現(xiàn)解耦
流量削鋒
用戶的請求,服務(wù)器接收后,首先寫入消息隊列。假如消息隊列的長度超過最大數(shù)量,則直接拋棄用戶請求或跳轉(zhuǎn)到錯誤頁面
秒殺業(yè)務(wù)根據(jù)消息隊列中的請求信息,再做后續(xù)處理
日志處理
kafka:接收用戶日志的消息隊列
Logstash:日志解析,統(tǒng)一成 JSON 輸出給 Elasticsearch
Elasticsearch:實時日志分析服務(wù)的核心技術(shù),一個 schemaless,實時 的數(shù)據(jù)存儲服務(wù),通過 index 組織數(shù)據(jù),兼具強大的搜索和統(tǒng)計功能
Kibana:基于 Elasticsearch 的數(shù)據(jù)可視化組件,超強的數(shù)據(jù)可視化能力是眾多公司選擇 ELK stack 的重要原因
課程鏈接
評論
圖片
表情
