自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么在微服務(wù)架構(gòu)下,服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署在虛擬機(jī)上

新聞 前端
最近開發(fā)了一基于springcloud的微服務(wù)架構(gòu)的門戶項(xiàng)目,因?yàn)榭蛻魧?duì)系統(tǒng)性能有要求,所以作者對(duì)系統(tǒng)的一些api接口進(jìn)行了大量壓力測(cè)試。

[[270987]]

最近開發(fā)了一基于springcloud的微服務(wù)架構(gòu)的門戶項(xiàng)目,因?yàn)榭蛻魧?duì)系統(tǒng)性能有要求,所以作者對(duì)系統(tǒng)的一些api接口進(jìn)行了大量壓力測(cè)試。在壓測(cè)過程中,發(fā)現(xiàn)接口的性能瓶頸之一是服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫部署在虛機(jī)上,所以本文將分享內(nèi)容分為兩部分:

  1. 性能壓測(cè)結(jié)果說明
  2. 為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛機(jī)

性能壓測(cè)結(jié)果說明

性能壓測(cè)思路是從軟硬件負(fù)載 f5,nginx,到容器化平臺(tái)k8s、docker、zuul網(wǎng)關(guān),再到數(shù)據(jù)存儲(chǔ)es、mysql、mongodb、redis,進(jìn)行全面測(cè)試。

性能壓測(cè)匯總

為什么在微服務(wù)架構(gòu)下,服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署在虛擬機(jī)上

部分接口壓測(cè)結(jié)果

為什么在微服務(wù)架構(gòu)下,服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署在虛擬機(jī)上

其中值得關(guān)注的是,用一臺(tái)zuul網(wǎng)關(guān)節(jié)點(diǎn)和一個(gè)業(yè)務(wù)節(jié)點(diǎn)壓測(cè)空接口,發(fā)現(xiàn)一個(gè)有意思現(xiàn)象:

空接口壓測(cè)不走zuul,一個(gè)業(yè)務(wù)節(jié)點(diǎn)tps能達(dá)到32000,走zuul網(wǎng)關(guān),一個(gè)業(yè)務(wù)節(jié)點(diǎn)空接口tps只有11000,性能損耗64%。

當(dāng)時(shí)就感覺zuul網(wǎng)關(guān)在我心中高大的形象碎了一地,但是沒辦法,性能不達(dá)標(biāo)必須要優(yōu)化。所以樓主查了很多資料,也問過一些docker和k8s的容器化平臺(tái)大牛,總結(jié)出兩點(diǎn)經(jīng)驗(yàn):

  1. docker和k8s部署到虛機(jī)上,zuul網(wǎng)關(guān)性能衰減40%左右
  2. 數(shù)據(jù)存儲(chǔ)es、mysql、mongodb、redis不能用虛機(jī)部署

所以我向公司申請(qǐng)物理機(jī),繼續(xù)性能壓測(cè),當(dāng)然這不是重點(diǎn),重點(diǎn)是接下來要講的:為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛擬機(jī)上

為什么服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫不能部署到虛擬機(jī)

虛擬機(jī)的特點(diǎn)

  1. 運(yùn)行在物理機(jī)上
  2. 有自己的虛擬網(wǎng)絡(luò)
  3. 多臺(tái)虛擬機(jī)共享物理機(jī)資源
[[270988]]

io開銷

我們知道,不管虛機(jī)上部署了多少個(gè)應(yīng)用,一旦涉及到數(shù)據(jù)的存儲(chǔ),如果采用虛機(jī)部署數(shù)據(jù)庫,會(huì)帶來不必要的網(wǎng)絡(luò)io開銷。因?yàn)樘摂M機(jī)在調(diào)度大量物理的cpu和內(nèi)存、特別是磁盤IO時(shí),必須經(jīng)過虛擬機(jī)和物理機(jī)兩層網(wǎng)絡(luò)io讀寫開銷操作,是非常耗系統(tǒng)性能的。

一般情況下,使用虛擬機(jī)部署應(yīng)用,其性能衰減約20%左右,這不是優(yōu)化代碼能解決的。

共享物理機(jī)資源

因?yàn)樘摂M機(jī)在cpu資源、網(wǎng)絡(luò)等方面共享物理機(jī)資源,虛擬機(jī)之間會(huì)存在競(jìng)爭(zhēng)物理機(jī)資源,造成程序不穩(wěn)定情況。

docker容器部署

更要命的是,如果數(shù)據(jù)庫和zuul網(wǎng)關(guān)部署到容器(實(shí)質(zhì)也是虛擬機(jī))里,那么網(wǎng)絡(luò)io讀寫變成docker(虛擬機(jī))到虛機(jī),再到物理機(jī)三層訪問,無形之中又增加了io讀寫性能開銷。尤其是對(duì)于請(qǐng)求吞吐量要求很高的服務(wù)網(wǎng)關(guān)zuul,是不能容忍的。

總結(jié)

所以虛機(jī)對(duì)于IO密集型以及對(duì)延遲要求很高的業(yè)務(wù)場(chǎng)景不合適。

另外,早期的時(shí)候,作為一名架構(gòu)師需要盡早的規(guī)劃好服務(wù)網(wǎng)關(guān)和數(shù)據(jù)庫的物理部署方式以及軟硬件性能要求。

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2024-10-29 08:44:18

2020-03-27 08:46:51

微服務(wù)服務(wù)網(wǎng)關(guān)

2017-09-04 16:15:44

服務(wù)網(wǎng)關(guān)架構(gòu)

2021-09-08 11:25:45

KubernetesAPISIXLinux

2022-09-01 08:17:15

Gateway微服務(wù)網(wǎng)關(guān)

2024-08-05 10:03:53

2022-06-04 15:28:42

微服務(wù)架構(gòu)編程語言

2022-05-11 08:22:21

服務(wù)網(wǎng)關(guān)架構(gòu)

2020-10-10 10:37:54

微服務(wù)架構(gòu)技術(shù)API

2021-10-21 09:10:34

微服務(wù)架構(gòu)數(shù)據(jù)

2017-09-09 23:15:20

Spring Clou微服務(wù)架構(gòu)路由

2020-04-29 14:33:49

微服務(wù)網(wǎng)關(guān)Kong

2019-07-30 15:59:06

數(shù)據(jù)庫技術(shù)SQL

2017-09-15 23:29:53

Spring Clou微服務(wù)架構(gòu)過濾器

2015-07-17 11:11:20

虛擬化基礎(chǔ)架構(gòu)服務(wù)

2022-08-08 10:09:58

服務(wù)網(wǎng)格架構(gòu)

2023-04-03 08:51:06

2023-01-11 16:22:07

2009-03-26 19:56:31

虛擬化Vmware虛擬機(jī)

2009-03-27 09:04:25

GoogleAndroid移動(dòng)OS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)