欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時

 更新時間:2019年04月28日 10:26:21   作者:LeoLaw  
這篇文章主要介紹了.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

上一集里說到遇到的各種問題并且弄了n個解決方案之后,特別是對于問題4的解決方案對于切換了HttpClientFactory

我用了你家netcore 2.1下專門解決之前HttpClient口病已久的靈丹妙藥了,信心滿滿的上線…..然后掛了,該超時的繼續(xù)超

其中這個問題比較詭異在于超時的主要集中在兩臺機(jī)器上(俗稱兩兄弟了)

由于不明真相到底是什么導(dǎo)致的,而且接下來又要到五一了,為了歡度五一這么一個偉大艱巨的任務(wù),為了證明遷移core的偉大光榮正確,怎么也要解決掉這個問題

步驟一,先確認(rèn)問題的復(fù)現(xiàn)

首先直接放棄在任何測試環(huán)境復(fù)現(xiàn)的想法,因為之前在測試HttpClientFactory的時候已經(jīng)在測試環(huán)境里進(jìn)行過多批次各種場景的壓測,無論是長時低壓,長時高壓,短時高壓都進(jìn)行過都沒發(fā)生過

而且就算是線上也就2臺機(jī)器有問題

所以讓運維提供ip,指向到這臺服務(wù)器后,使用superbenchmarker對其進(jìn)行壓測

壓測中發(fā)現(xiàn)這個….很穩(wěn)定

穩(wěn)定5分鐘,掛個2分鐘

綠色線為RPS每秒請求數(shù),紫色是請求響應(yīng)時間,發(fā)現(xiàn)綠色線穩(wěn)定5分鐘后,會突然沒有了(請求卡住了),等個2分鐘后突然紫色線突然冒個刺(等待已久的請求終于響應(yīng)了)然后綠色線又起來了(請求恢復(fù)正常)

步驟二,確認(rèn)超時的時候發(fā)生了什么

第二天,開好壓測,因為確認(rèn)了每5分鐘后會超時2分鐘這個時間,等著個四分鐘左右跑到運維那坐著,看下超時期間到底發(fā)生了什么。

然后我就絕望了。

常規(guī)的比如CPU/內(nèi)存之類一切正常,考慮到HttpClient有過的歷史缺陷。 也特意關(guān)注過端口號之類的,也一切正常。

步驟三,遷移前的Framework怎么沒有問題,是Core的鍋嗎

為了證明這個事情,準(zhǔn)備了2個console

一個Framework下使用靜態(tài)的HttpClient每100ms調(diào)用某外部接口

一個Core下使用HttpClientFactory也是每100ms調(diào)用某外部接口

這個結(jié)果讓我絕望的平方

結(jié)果顯示Framework下一切正常,只有Core有問題

后續(xù)在補充了幾個不同姿勢的Core版本的console來測試

包括

1.將SetHandlerLifetime設(shè)置為InfiniteTimeSpan

2.不用HttpClientFactory直接new一個靜態(tài)HttpClient(和Framework一摸一樣的姿勢)

依然都會又超時的問題

由于網(wǎng)上google翻了個遍沒找到類似的說法

此時的內(nèi)心想法:難道我要開歷史的倒車了么(難道只有我有問題么?還是說我哪里姿勢有問題?別人怎么都好好的?難道別人都是假的?網(wǎng)上吹的那么厲害全都是瞎BB?….各種草泥馬奔騰而過)

柳暗花明,絕望的時候找下組織吧

然后就在某微信群里發(fā)出求救信號

最后得到一個看起來有點靠譜的方案

(截圖里的內(nèi)容,)

文字版描述:創(chuàng)建HttpClient的時候設(shè)置UseProxy為false,此值默認(rèn)值是true

然后使用這個改造后在打包一個console進(jìn)行測試,這次結(jié)果終于看到了希望的曙光了

由于根據(jù)之前的規(guī)律每5分鐘之后會掛2分鐘,能活個10分鐘基本證明修改有效

跟著這個將站點都修改了UseProxy=false打包上去,進(jìn)行壓測

跑了好幾個小時,目前為止并沒有發(fā)生再超時的問題了,現(xiàn)在基本實錘問題解決了

最后總結(jié)

無論你是new一個靜態(tài)HttpClient還是通過HttpClientFactory去創(chuàng)建HttpClient,記得要將UseProxy=false(當(dāng)然,除非你要用proxy那就沒轍)

當(dāng)然,最后有幾個疑點我也不是太清楚

比如

為什么線上就2臺機(jī)器恒定有問題?

而其他機(jī)器則比較穩(wěn)定(實際線上服務(wù)器接近30臺)?

為什么是穩(wěn)5分鐘后超時2分鐘(這個5和這個2是哪里設(shè)置的)?

UseProxy在這里又是起到了什么樣的作用?

群里小伙伴給了這么一個解釋

然而我依然不是太理解T-T

.Net世界真是博大精深…

總結(jié)

以上所述是小編給大家介紹的.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

最新評論