压测结果
2025/11/11小于 1 分钟
压测结果
原HTTP接口

网关Dubbo调用

网关HTTP调用

压测脚本:
import requests
import time
import numpy as np
from concurrent.futures import ThreadPoolExecutor, as_completed
URLS = [
# "http://192.168.154.128/test?name=codelong", #Dubbo
"http://192.168.154.128/test2?name=codelong" #HTTP
# 'http://127.0.0.1:777/test2?name=codelong' #原接口HTTP
]
HEADERS = {
"Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTQ3Mzk5MTUsImV4cCI6MTc1NzMzMTkxNSwic2FmZS1rZXkiOiJzYWZlS2V5In0.un3T6mys1HWjOMWUgehBFc1dt9cvcwoIjPCVu8C56pI"
}
THREADS = 50
REQUESTS_PER_THREAD = 5000
def send_request(url):
start = time.time()
try:
r = requests.get(url, headers=HEADERS, timeout=10)
elapsed = (time.time() - start) * 1000 # ms
return elapsed
except Exception:
return None
def main():
all_times = []
start_time = time.time()
with ThreadPoolExecutor(max_workers=THREADS) as executor:
futures = []
for _ in range(REQUESTS_PER_THREAD):
for url in URLS:
futures.append(executor.submit(send_request, url))
for future in as_completed(futures):
t = future.result()
if t is not None:
all_times.append(t)
end_time = time.time()
all_times = np.array(all_times)
print(f"总请求数: {len(all_times)}")
print(f"QPS: {len(all_times) / (end_time - start_time):.2f}")
print(f"平均响应时间: {np.mean(all_times):.2f} ms")
print(f"最小响应时间: {np.min(all_times):.2f} ms")
print(f"最大响应时间: {np.max(all_times):.2f} ms")
print(f"TP50: {np.percentile(all_times, 50):.2f} ms")
print(f"TP95: {np.percentile(all_times, 95):.2f} ms")
print(f"TP99: {np.percentile(all_times, 99):.2f} ms")
print(f"TP99.99: {np.percentile(all_times, 99.99):.2f} ms")
if __name__ == "__main__":
main()