Granian 是一個 Rust 編寫的、面向 Python 應(yīng)用的 HTTP 服務(wù)器,性能表現(xiàn)堪稱吊打 uwsgi、gunicorn 等現(xiàn)有方案。 根據(jù)項目主頁的介紹,Granian 可跨平臺使用,支持使用 ASGI/3、RSGI 和 WSGI 等協(xié)議的應(yīng)用,實現(xiàn)了 HTTP/1 和 HTTP/2 協(xié)議,還支持 HTTPS 和 Websockets。 Granian 去年才發(fā)布,目前在社區(qū)的應(yīng)用預(yù)計還不廣泛,但是受歡迎程度上升明顯。目前在 Github 上的星標(biāo)為 2k,近期增長很快。 如何安裝使用 pip 命令即可快速安裝 Granian:
Granian 提供了大量的配置選項,并提供一個自動重載器(使用 granian[reload] 安裝時),這對本地開發(fā)非常有用。
如何部署如果想要切換到 Granian 進行生產(chǎn)環(huán)境部署,也非常簡單。 假設(shè)之前使用的時 gunicorn,那么只要修改一條命令即可。
性能對比開發(fā)者同時還提供了一些基準(zhǔn)測試的數(shù)據(jù),我從中摘取了涉及 WSGI 其他方案的對比數(shù)據(jù),可以發(fā)現(xiàn) Granian 可以給 Python 應(yīng)用帶來極其明顯的提升,某些分項指標(biāo)上甚至達到了數(shù)百倍。 從上圖中可以發(fā)現(xiàn),Gunicorn 和 uWSGI 方案的 RPS 都遠(yuǎn)低于 1 萬,最低的只有不到4000,而 Granian 則可以做到3-4萬以上,性能提升接近10倍。 另外在延遲數(shù)據(jù)方面,Granian也有著明顯的優(yōu)勢,而且延遲較為穩(wěn)定,不存在超長延遲的情況。 小結(jié)一下從性能對比數(shù)據(jù)來看,Granian是一個非常不錯的 HTTP 服務(wù)器替代方案。 未來的新項目我肯定會嘗試一下,甚至現(xiàn)有項目切換做一下實驗也完全可以,基本上可以做到無縫遷移,替換到uWSGI和gunicorn。 建議有興趣的朋友都試試。 - EOF - 文章已經(jīng)看到這了,別忘了在右下角點個“贊”和“在看”鼓勵哦~ |
|