<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ![字母哥博客](https://cdn.zimug.com/wx-zimug.png) 微服務近些年可謂是發展的如火如荼,和別人談技術不聊點“微服務”,會讓自己感覺很落伍。很多人聊微服務,但真的把微服務聊的通俗、聊的通透的人并不多。 我想以一種非常通俗的方式和大家解釋一下微服務,就是以“夫妻攤位”到“五星飯店”發展的角度為例,為大家說明一下微服務及微服務所解決的問題,帶來的挑戰。 ## 第一階段:夫妻攤位 小夫妻倆剛結婚,手里資金有限,就想著開一個路邊燒烤攤。丈夫負責烤串做菜、妻子負責服務收銀及上菜。這是一個典型的路邊燒烤攤的經營模式。大家仔細看這種經營模式的好處在于: * 因為攤位的桌椅板凳的容量通常是有限的,所以食品總的需求量的上限也基本是固定的。 這種攤位很少會出現長時間的等菜的現象。 * 溝通順暢、快速,這頭點菜點串吼一嗓子、那邊就開始做上了。做好了再吼一嗓子,就上菜了。 * 短小精悍、容易掉頭。夫妻兩有可能干一陣發現這個位置客流少或者只賺辛苦不賺錢,就可以立刻停止經營、換個地方經營或者找別的營生。 這個階段就有點像一些創業公司,剛開始創業的時候,一般做的應用都是單體應用。筆者也見過一些創業公司,上來就想搞微服務,我覺得這是不太現實。企業的架構都是一步一步衍進的,不要總想著一口吃一個胖子。如果京東淘寶從第一天做應用的時候就想做成今天的樣子,他們一定活不到今天。就像一個沒開過飯店的人第一次創業就要開五星級飯店,等待他的十有八九就是失敗! 那么單體應用的特點有哪些: * 能夠接納的請求數量時有限的,因為服務器的內存、CPU配置是有限的。 * 展現層、控制層、持久層全都在一個應用里面,調用方便、快速。單個請求的響應結果超快。 * 開發簡單、上手快、三五個人團隊好管好用。老板決定不干了,隨時可以掉頭,基本不太肉疼。 ![](https://img.kancloud.cn/50/db/50db3a3509d1c530503d1554564fda00_1133x270.png) ## 第二階段:門面飯館 但是,隨著小夫妻倆經營有方、待客有道,開始有人愿意為了吃他們做的燒烤排隊了。夫妻倆一想,我們這倆人也干不過來啊,怎么辦?招人吧、擴大規模吧。 * 招什么人?當然是廚師啊、端菜收銀的妻子自己還能干得過來,主要是丈夫的活挺不住了。那就招廚師。 * 不能讓人站著吃吧?租一個附近的門市、添置更多的桌椅板凳。 **客戶端負載均衡與服務端負載均衡是什么?** * 小夫妻兩一口氣為飯館配置了三個廚師(含丈夫),這下可夠用了。妻子將單號訂單給張廚師、雙號訂單給李廚師,兩人都干不過來了,再將訂單給丈夫。反正外人不用白不用,自己家人能歇會就歇會。**這種模式就是“客戶端負載均衡”**,所有的訂單全都記在“妻子”的腦袋里,她說給誰就給誰。 * 有一天這倆廚師提出意見:太累了,要么丈夫多出力,要么漲工資。夫妻倆一合計,還是丈夫多出力吧。那妻子也就沒有必要記住“訂單的單雙號”了,所以就使用一款app,妻子輸入顧客訂單,該app可以實現訂單的均衡分配給廚師。**“這種模式就是“服務端負載均衡””**,該app就是負載均衡器,常用的軟件負載均衡器有nginx、haproxy等。還有一些硬件的負載均衡器,性能上要更好一些,當然收費也更“好”。 ![](https://img.kancloud.cn/81/3a/813a94406fd75a4dc63a7a3a3d65be37_871x664.png) **利與弊** * “利”就是應用的處理能力增加了,能夠處理更多的訂單。 * “弊”就是溝通成本增加了,原來吼一嗓子解決的問題,現在需要app轉發了(負載均衡器) 也就是說:飯店(應用)現在在處理并發請求的能力和容量上增強了,但是在單個請求的處理速度上下降了。實際上,這就是服務拆分,服務拆分就是在 **“用時間換空間”** 。你細品! ## 第三階段:核心分工精細化 為了解決上一階段遇到的問題:單個請求的處理速度下降。也就是飯店針對單個訂單做菜響應速度下降了,但是由于飯店的菜確實好吃、菜品精良,客流量又持續的增高。該店又再次面臨擴容的問題。 * 為了解決客流量持續增高,夫妻又招聘了4位廚師 * 為了解決單個訂單處理速度下降的問題,將廚師分為兩組,一組專門做燒烤,一組專門做飯菜。專業的人做專業的事情,注意力越集中,辦事越熟練、效率越高。 新的問題又出現了,有的顧客既點燒烤又點飯菜。導致后端兩組廚師之間溝通不暢,怎么組合套餐推送給前臺?廚師之間怎么調用、怎么溝通啊?誰是頭?誰是大腦?誰記得A廚師的燒烤和B廚師的飯菜是一桌的? ![](https://img.kancloud.cn/6c/1b/6c1b238804854e172de59aeaf66c810a_921x595.png) 丈夫一看這種情況,我也別再做廚師了,那做什么?做菜品的配置管理、做訂單的服務注冊。丈夫負責主動觀察問詢各工種的工作狀態并記錄,妻子主動向丈夫問詢后端廚師的狀態,并根據丈夫的反饋分配訂單(客戶端負載均衡)。丈夫的新工作實際上就產生了微服務非常重要的組件:服務注冊中心和配置管理中心。比如:Spring Cloud Alibaba nacos、eureka、consul、zookeeper、Spring cloud config等 ## 第四階段:配套管理專業化 ![](https://img.kancloud.cn/26/8a/268a5c8b7ee4ee78bbc8e3dbd8935e8f_707x549.png) * 需要有統一的門面了:前臺。所有的顧客進來,由前臺統一接待。比如:Spring Cloud Gateway和zuul。 * 需要有安保人員了:檔次高了、進入飯店有預約。最起碼得尊重用餐禮儀,不能是背心褲衩大跨欄,否則就不讓你進。比如:OAuth2 認證服務器和資源服務器。 * 菜品限量提供了:法式菜品、意大利菜品、日本料理。什么時間可以吃得到、可提供多少人份?這些服務都是有限制的。比如:Hytrix熔斷限流。 * 工作效率監督:工作流程中每個崗位做了什么工作、用了多長時間。哪個環節出現問題、哪個崗位需要調整。比如: Sleuth、Zipkin、日志監控ELK等。 ## 第五階段:容器化、自動化 飯店的規模越來越大了、崗位分工也越來越細了。真的成了超級大飯店了,怎么管?這就需要專業的機器人服務租用公司,這種公司專門出租各種行業專用機器人。 * 服務員統一包裝:用自動點餐機、機器人。身高必須一米65,微笑必須漏出四顆牙。 * 物料統一包裝:也不用人了,流水作業,一盤菜幾塊肉、什么料全都自動化配置好。廚師就負責炒熟就行了(拜托,這例子理解就好,不要抬杠) 總之全都自動化。這時公司內部的devops團隊就出現了,制定規范、集體包裝、流程自動化。突然有一天,飯店承接了大型運動會大型展覽,怎么辦?要去招服務員么?招員工培訓么?不要,租機器人就行了,用完了就還回去。每年的雙十一、淘寶京東也都是用容器自動化擴容的方式應對暴漲的服務需求。容器化最大的好處就是:輕量級的發布于與銷毀、自動化的擴容。 * 這里的機器人公司,我們可以認為是kubernetes、mesos、swarm * 這里的機器人,我們可以認為是docker、containerd等
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看