国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微服務架構選Java還是選Go - 多用戶負載測試

lentoo / 746人閱讀

摘要:微服務架構允許我們再創建新應用時自由選擇不同的技術和編程語言。個用戶時,性能顯著降低,而仍然是完美的。總結使用相同的硬件,應用程序可以提供兩倍于具有數據庫的應用的并發用戶數。

Ivan Nikitsenka

微服務架構允許我們再創建新應用時自由選擇不同的技術和編程語言。不過究竟哪種語言更適合我們當下的硬件?回答這個問題,需要搞明白Java和Go編寫的相同應用程序之間的性能差異。

先決條件

No additional performance enhancements should be applied. Use minimum configurations with default frameworks and libraries settings.

No ORM frameworks. Use pure DB drivers and the same SQL queries. Postgres JDBC 4.2 driver for Java and github.com/lib/pq for Go.

不采用其他性能增強功能

使用默認框架和庫設置的最小配置

沒有ORM框架

使用純DB驅動程序和相同的SQL查詢

用于Java的Postgres JDBC 4.2驅動程序和用于Go的github.com/lib/pq

怎么做

使用DB(Postgres)數據存儲創建簡單的Java/Go REST API應用程序

使用JMeter或類似工具創建負載測試

在多帶帶的AWS實例上運行應用程序,加載測試和數據庫

收集負載測試結果

被測系統

作為被測系統,這里準備了兩個銀行應用:bank-java和bank-go。

APIs:

POST / client / new / {balance} - 創建具有初始余額的新客戶

POST /交易 - 將資金從一個賬戶轉移到另一個賬戶

GET / client / {id} / balance - 返回客戶端的當前余額

框架和依賴關系

在選擇框架和庫時,這里使用了最新、最流行和最簡單的框架和庫來盡快準備好應用程序。

Bank-java:Java 10、Spring Boot 2.0.4、spring-web 5.0.8、PostgreSQL JDBC 4.2.4

Bank-go:Go 1.8,gorilla / mux,github.com / lib / pq。

銀行應用源碼

Bank-java: https://github.com/nikitsenka...

Bank-go: https://github.com/nikitsenka...

測試項目

測試項目Bank-test使用動態變化的用戶數(從1,000到10,000)執行對銀行API的調用,驗證響應并收集統計信息。

測試環境

這里用AWS并創建了兩個AWS EC2實例:

Bank-go t2.micro (Variable ECUs, 1 vCPUs, 2.5 GHz, Intel Xeon Family, 1 GiB memory, EBS only)

Bank-java t2.micro (Variable ECUs, 1 vCPUs, 2.5 GHz, Intel Xeon Family, 1 GiB memory, EBS only)

Postgres d2.xlarge (14 ECUs, 4 vCPUs, 2.4 GHz, Intel Xeon E52676v3, 30.5 GiB memory, 3 x 2048 GiB Storage Capacity)

Bank-test t2.2xlarge (Variable ECUs, 8 vCPUs, 2.3 GHz, Intel Broadwell E5-2686v4, 32 GiB memory, EBS only)

結果

完整結果請查看 here

結果小結

兩個應用與1,000個并發用戶完美配合。2,000個用戶時,Go性能顯著降低,而Java仍然是完美的。從3,000個用戶及以上用戶開始,兩個應用都顯示出不可接受的響應時間,并且錯誤響應的數量顯著增加。

總結

使用相同的硬件,Java REST API應用程序可以提供兩倍于具有PostgreSQL數據庫的Go應用的并發用戶數。

關于Rainbond
Rainbond(云幫)是"以應用為中心”的開源PaaS, 深度整合基于Kubernetes的容器管理、ServiceMesh微服務架構最佳實踐、多類型CI/CD應用構建與交付、多數據中心資源管理等技術, 為用戶提供云原生應用全生命周期解決方案,構建應用與基礎設施、應用與應用、基礎設施與基礎設施之間互聯互通的生態體系, 滿足支撐業務高速發展所需的敏捷開發、高效運維和精益管理需求。

網站

Github

碼云

演示環境

文檔

社區

微信群: 添加微信“zqg5258423”并接受邀請入群

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8867.html

相關文章

  • 【面試精】關于大型網站系統架構你不得不懂的10個問題

    摘要:降級往往會指定不同的級別,面臨不同的異常等級執行不同的處理。談談你對和的認識兩者關系具體可以看公眾號阿里巴巴中間件的這篇文章獨家解讀從微服務框架到微服務生態與并不是競爭關系,作為成熟的框架,其易用性擴展性和健壯性已得到業界的認可。 該文已加入筆主的開源項目——JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識的文檔類項目),地址:https://github.com/...

    leiyi 評論0 收藏0
  • 【面試精】關于大型網站系統架構你不得不懂的10個問題

    摘要:降級往往會指定不同的級別,面臨不同的異常等級執行不同的處理。談談你對和的認識兩者關系具體可以看公眾號阿里巴巴中間件的這篇文章獨家解讀從微服務框架到微服務生態與并不是競爭關系,作為成熟的框架,其易用性擴展性和健壯性已得到業界的認可。 該文已加入筆主的開源項目——JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識的文檔類項目),地址:https://github.com/...

    luqiuwen 評論0 收藏0
  • 后端經驗

    摘要:在結構上引入了頭結點和尾節點,他們分別指向隊列的頭和尾,嘗試獲取鎖入隊服務教程在它提出十多年后的今天,已經成為最重要的應用技術之一。隨著編程經驗的日積月累,越來越感覺到了解虛擬機相關要領的重要性。 JVM 源碼分析之 Jstat 工具原理完全解讀 http://click.aliyun.com/m/8315/ JVM 源碼分析之 Jstat 工具原理完全解讀 http:...

    i_garfileo 評論0 收藏0
  • Dubbo Cloud Native 之路的實踐與思考

    摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。是基于開發的服務代理組件,在使用場景中,它與和整合,打造具備服務動態更新和負載均衡能力的服務網關。類似的特性在項目也有體現,它是另一種高性能代理的方案,提供服務發現健康和負載均衡。 摘要: Cloud Native 應用架構隨著云技術的發展受到業界特別重視和關注,尤其是 CNCF(Cloud Native Computing Fo...

    niceforbear 評論0 收藏0
  • 后端好書閱讀與推薦(續四)

    摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續后端好書閱讀與推薦續二后端好書閱讀與推薦續三后端好書閱讀與推薦續四這里依然記錄一下每本書的亮點與自己讀書心得和體會,分享并求拍磚。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續)后端好書閱讀與推薦(續二)后端好書閱讀與推薦(續三)后端好書閱讀與推薦(續四) 這里依然記錄一下每本書的亮點與自己讀書心得...

    phodal 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<