# 微服務下半部 因為使用微服務有以下優點(以下要改成簡單一點) ---- --- # 更新版 1.好找bug 2.不需要相同程式語言就可以開發 3.可以獨立cicd 4.壓力分散 --- ### 好找BUG 當網站掛了 我不會像之前一樣 要把整個單體式系統都拿出來看是哪個環節抱錯 {演一下} 單體式系統 {ㄟㄟ 網站又掛了 快看是哪邊出問題 } {找到了 是報表系統這邊邏輯有問題 看來要先停站一下,準備維修} {哪尼 就因為這樣就要全站停唷} //如果是MS {ㄟㄟ 網站又掛了 快看是哪邊出問題 } {找到了 是報表系統這邊邏輯有問題 只要先停掉報表系統就好了 不影響全站運作} {很棒 那先停掉報表系統} 情境2: 單體式系統 {ㄟㄟ 網站又掛了 快看是哪邊出問題 } {找到了 是會員系統這邊邏輯有問題 看來要先站台全都停站一下纖維修一下} 過了一會 管理員{為什麼報表不能查詢了?} [因為會員功能有問題 所以整個網站應佣城市先停掉了] //MS {ㄟㄟ 網站又掛了 快看是哪邊出問題 } {找到了 是會員系統這邊邏輯有問題 只要先停掉會員系統就好了 不影響全站運作} {很棒 那先停掉會員系統} 管理員:{舒服 會員關會員的 報表一樣沒事 繼續查我的} 這就是為服務的好處之一 A服務掛掉不影響B服務 B服務繼續開心使用 --- ### 不需要相同程式語言就可以開發 如果今天你們公司的網站應用程式 想加入一個報表系統 但是你們公司的往專案是使用Delphi 那你們一定會再找一個會Delphi的 在你們的專案上開發報表系統對吧 如果找不到呢 [阿工程師找到了沒 我們這個報表系統很及耶 客戶趕著要看] {老闆 Delphi工程師太難找了 我們時間也不夠去開發報表系統} {不如我們開始慢慢朝向微服物價購 報表系統算是另外一隻為服務 那我們可以找會其它程式語言的工程師就可以了 c#或是python} [確定嗎? 不是都要找Delphi的我們程式才可以運作嗎] {不用 為服務有獨立性 所以可以用其他語言 至於我們的源專案 和報表系統為服務} {中間只要用 restfulapi或是rmq或是grpc做溝通就好了} [原來如此 好我不懂 你看著辦吧 就交給你處理了] --- ### 可以獨立cicd 這次購物車要加一個新功能 如果是一條龍系統 那就會是整個網站應用程式都要做cicd 會變得有點肥 但如果購物車 當初也是拆成微服務的話 你購物車系統只要做了新功能或是改東西 只要單獨對購物車微服務系統做cicd就好了 可以縮短cicd的時間 也不影響到其他的功能運行 --- ### 壓力分散 如果單體式系統 有會員功能和報表功能 但因為會員功能的壓力會比較大 影響到同系統的報表功能查詢速度 老闆:{奇怪 怎麼查報表的速度突然變慢了 工程師看一下怎麼回事} [因為我們網站目前有活動 會員突然湧入的流量變大 所以導致整個系統都lag了~] 如果這時候使用ms 那就不一樣了 [好家在之前報表系統拆開成維服務 現在即便會員系統 購物車系統 等等突然湧入大量流量 報表系統也跟那些系統沒關係 該查的速度還是保持住 真是太好了] 也就是前面有提到的 全聯收銀員的範例 因為本來要做兩件事 現在只要專心結帳做一件事就好 整個壓力分散 所以結帳的速度就變得很快 ---