我一直在研究運行一些Python代碼以接受TCP連接的EC2實例的可靠性。AWS負載均衡器健康檢查行爲
設置: 該腳本設置爲接受多個連接並進行一些處理併發回結果。來自ELB的平板被成功識別並且機器變得健康。
問題: 如果我模擬處理過程中僵局的無限循環中,坪被接受,但Python的服務器永遠不會關閉客戶端;它仍然在循環中。奇怪的是,雖然機器不能再接受任何連接,但實例被標記爲健康。我希望這臺機器不健康,因爲它不能再被其他人接受。
我想知道實例是否已經接受ping並且連接仍然打開的事實意味着「健康」的機器?或者如果有什麼可怕的事情發生在這裏?希望如何解決它!
在此先感謝。
的Python腳本接受來自坪的連接,通常會再次關閉連接,一旦它意識到它其實是一個平。 但是在死鎖模擬中它接受了ping,就是這樣。它不接受來自負載平衡器的更多連接,所以我不確定爲什麼該機器看起來健康。 – FintanH
ELB維護連接並通過該現有連接發送後續請求,該腳本必須使用HTTP 200響應ELB健康檢查。您可以通過在相同條件下使用「nc」工具(在unix/linux上)連接到您的服務器並執行ELB運行狀況檢查發送的GET請求來手動測試。 – ColinSeligSmith
但我不明白的是,如果腳本沒有做任何事情(字面意思是「while True:continue'),那麼爲什麼最初的請求不會超時? – FintanH