1.發送請求的數據量大概有多大?
述職答辯的時候被問到這樣一個問題,雖然知道怎么算,但不得不承認對這一塊的原理、周邊的配置了解得并不深刻。
數據量的計算:取mysql命令show table status返回的Avg_row_length的字節數(我發送的數據是運力數據,每次請求發送的數據量和數據表中對應的記錄基本一致,即:商圈,日期,每個時段下的運力計劃人數)
延時的問題:1.對方接收的數據量有多大?2.能處理的qps是多少?
對方接收的數據量有多大?
首先,接收的數據量與協議無關,HTTP 協議從未規定 GET/POST 的請求長度限制是多少。
其次,請求長度限制是由瀏覽器和 web 服務器決定和設置的,各種瀏覽器和 web 服務器的設定均不一樣,這依賴于各個瀏覽器廠家的規定或者可以根據 web 服務器的處理能力來設定。
我們采用的web服務器是nginx,可查看nginx.conf的配置文件,對header、body的大小進行了設置,線上如下:
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 32m;
client_body_buffer_size 512k;
2.能處理的qps是多少?
首先,qps指標通過壓測得出比較科學,如果是新系統,沒有經過壓測,可以通過接口的響應時間大概估算一下(比如接口響應時間是200ms,那么1s內能處理5個請求,qps是5)。
在與別人對接時,詢問一下接口的qps和響應時間,以便于判斷自身系統設計。比如應該設計成同步還是異步,當第三方不穩定時如何采取降級措施,比如加開關等。