.NetCore下使用Polly结合IHttpClientFactory实现聚合服务
在使用微服務(wù)的過(guò)程中經(jīng)常會(huì)遇到這樣的情況,就目前我遇到的問(wèn)題做下分析
情況一:
這里服務(wù)對(duì)于前后端分離情況來(lái)說(shuō),多使用查詢(xún)服務(wù),前端直接獲取不同服務(wù)的數(shù)據(jù)展示,如果出現(xiàn)其中的服務(wù)失敗,對(duì)業(yè)務(wù)數(shù)據(jù)無(wú)影響,只對(duì)前端數(shù)據(jù)展示出現(xiàn)影響
情況二
這列聚合服務(wù)主要出現(xiàn)在操作上,各個(gè)服務(wù)存在相互調(diào)用,相互協(xié)作完成某一項(xiàng)操作的情況
接下來(lái)我在API中添加了聚合服務(wù)模塊,利用 IHttpClientFactory處理了情況的服務(wù)根目錄及授權(quán)問(wèn)題
這里可以動(dòng)態(tài)配置管理你的一些注冊(cè)服務(wù)
在聚合服務(wù)中我們根據(jù)我們自己業(yè)務(wù)情況 可以采用 Polly+? 消息隊(duì)列處理
對(duì)于除程序代碼外的外部原因造成的異常情況,可以使用Polly 來(lái)處理,比如:網(wǎng)絡(luò)情況 等原因 可以發(fā)起重試? 服務(wù)內(nèi)部使用消息隊(duì)列保持操作最終一致
var client= httpClientFactory.CreateClient("userservicesapi");根據(jù)配置的名稱(chēng)創(chuàng)建相關(guān)的請(qǐng)求,這里涉及到在ServiceA中調(diào)用ServiceB的時(shí)候,ServiceB需要Accesstoken
這里需要獲取下AccessToken來(lái)處理
這就OK了,在結(jié)合Polly之前封裝的處理下,這里接受下返回值
原文地址:https://www.cnblogs.com/liyouming/p/9870839.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的.NetCore下使用Polly结合IHttpClientFactory实现聚合服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 把文件隐藏在图片中
- 下一篇: 你需要了解的有关.NET日期时间的必要信