---
# System prepended metadata

title: 微服務下半部

---

# 微服務下半部

因為使用微服務有以下優點(以下要改成簡單一點)

----




---

#    更新版


  1.好找bug
  2.不需要相同程式語言就可以開發
  3.可以獨立cicd
  4.壓力分散


---

### 好找BUG

當網站掛了 我不會像之前一樣 要把整個單體式系統都拿出來看是哪個環節抱錯

{演一下}

單體式系統
{ㄟㄟ  網站又掛了 快看是哪邊出問題 }
{找到了 是報表系統這邊邏輯有問題 看來要先停站一下，準備維修}
{哪尼 就因為這樣就要全站停唷}


//如果是MS
{ㄟㄟ  網站又掛了 快看是哪邊出問題 }
{找到了 是報表系統這邊邏輯有問題 只要先停掉報表系統就好了 不影響全站運作}
{很棒 那先停掉報表系統}

情境2:

單體式系統
{ㄟㄟ  網站又掛了 快看是哪邊出問題 }
{找到了 是會員系統這邊邏輯有問題 看來要先站台全都停站一下纖維修一下}
過了一會
管理員{為什麼報表不能查詢了?}

[因為會員功能有問題 所以整個網站應佣城市先停掉了]

//MS
{ㄟㄟ  網站又掛了 快看是哪邊出問題 }
{找到了 是會員系統這邊邏輯有問題  只要先停掉會員系統就好了 不影響全站運作}
{很棒 那先停掉會員系統}

管理員:{舒服 會員關會員的 報表一樣沒事 繼續查我的}


這就是為服務的好處之一

A服務掛掉不影響B服務

B服務繼續開心使用




---
### 不需要相同程式語言就可以開發

如果今天你們公司的網站應用程式 想加入一個報表系統

但是你們公司的往專案是使用Delphi 

那你們一定會再找一個會Delphi的

在你們的專案上開發報表系統對吧 

如果找不到呢

[阿工程師找到了沒 我們這個報表系統很及耶 客戶趕著要看]

{老闆 Delphi工程師太難找了 我們時間也不夠去開發報表系統}

{不如我們開始慢慢朝向微服物價購 報表系統算是另外一隻為服務 那我們可以找會其它程式語言的工程師就可以了 c#或是ｐｙｔｈｏｎ}

［確定嗎？　不是都要找Delphi的我們程式才可以運作嗎］

｛不用　為服務有獨立性　所以可以用其他語言　至於我們的源專案　和報表系統為服務｝

｛中間只要用　ｒｅｓｔｆｕｌａｐｉ或是rmq或是grpc做溝通就好了｝

[原來如此 好我不懂 你看著辦吧 就交給你處理了]









---
### 可以獨立cicd

這次購物車要加一個新功能 如果是一條龍系統

那就會是整個網站應用程式都要做cicd 會變得有點肥

但如果購物車 當初也是拆成微服務的話

你購物車系統只要做了新功能或是改東西

只要單獨對購物車微服務系統做cicd就好了

可以縮短cicd的時間 也不影響到其他的功能運行






---
### 壓力分散
如果單體式系統 有會員功能和報表功能

但因為會員功能的壓力會比較大

影響到同系統的報表功能查詢速度 


老闆:{奇怪 怎麼查報表的速度突然變慢了 工程師看一下怎麼回事}

[因為我們網站目前有活動 會員突然湧入的流量變大 所以導致整個系統都lag了~]

如果這時候使用ms 那就不一樣了

[好家在之前報表系統拆開成維服務 現在即便會員系統 購物車系統 等等突然湧入大量流量

報表系統也跟那些系統沒關係 該查的速度還是保持住 真是太好了]



也就是前面有提到的 全聯收銀員的範例 因為本來要做兩件事

現在只要專心結帳做一件事就好 整個壓力分散 所以結帳的速度就變得很快


---



