中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

架構演進之「微服務架構」

發布時間:2020-06-07 15:22:16 來源:網絡 閱讀:1175 作者:heishaovvv 欄目:云計算

架構演進之「微服務架構」

“為什么要搞「微服務架構」”?這也是我們當初討論的聚焦點。現在天天把“微服務”掛在嘴邊的人很多,但是有多少人真正深入思考過“為什么”,我認為可能不多。

于是我在梳理材料的時候,就決定從源頭入手——即“為什么”。
架構演進之「微服務架構」

架構是演進的,不是一蹴而就。

架構演進之「微服務架構」

“架構演進趨勢圖”中的趨勢分析,在業界比較公認。這個圖本身的內容、關于各個架構的描述、優缺點等等,網上簡單搜索一下有大把大把的,感興趣的同學可以自行搜索,畢竟這也不是我們文章的重點。

軟件發展的不同時期、階段,對技術的理解、選擇和應用都有著不一樣的訴求。架構的選型,永遠只有“合適與不合適”,永遠沒有“哪個更好”的說法。我們今天來談論微服務,并不是因為它更牛,而是經過謹慎分析,認為微服務的思想更符合我們的目標。

什么是「微服務架構」?

架構演進之「微服務架構」
既然聊的是“為什么”,那么首先要明白“什么是”。

「一解釋就懂,一問就不知,一討論就打架」,這是之前我在網上看到的一句話,笑了好久,太貼切了,就搬了過來。

架構演進之「微服務架構」

提到微服務,就沒法不提到這位“大神”——馬丁·福勒,他沒有直接給微服務下一個精準的定義,而是給出了微服務特點的描述,大概從以下四個方面來說:

1.根據業務模塊劃分服務種類
2.每個服務可以獨立部署并且互相隔離
3.通過輕量的API調用服務
4.服務需要保證良好的高可用性

架構演進之「微服務架構」
怎么理解呢?以下是我的解讀:

第一點,按業務拆分服務,這是“水平拆分”;在技術層面的“前后分離”,屬于“垂直拆分”;橫縱一起切,就把單一的應用拆分成網狀的小塊應用,這是微服務中「微」思想的體現。

第二點,獨立部署與互相隔離,這點充分體現了“我為人人、人人為我”的設計理念,這是微服務中「服務」思想的體現。

第三點,關于輕量API,微服務本身是推薦使用輕量的通訊協議和簡單的數據結構,實際上,實施環節通常采用的都是http+json的方式。這樣做的好處是,服務之間不再需要關心對方的模型,僅通過事先約定好的接口來進行數據流轉即可。這是微服務中「解耦」思想的體現。

最后一點,比較通用了,就是現如今各種設計都必須考慮的事情。

于是,我給微服務下了一個定義(如圖)。
架構演進之「微服務架構」

在實際工作中,我們遇到過各式各樣的問題,有些是技術問題,有些是業務問題,還有些是管理問題,這里拿其中一個案例來說一下。

架構演進之「微服務架構」
這種事情說大不大,說小不小。其中最麻煩的事情是“推諉”的發生。每個獨立組織都有自己的考核指標和關注點,而實際情況又不可能把具體的一個任務的界限劃分得特別清晰。例如接口定義,哪怕說的是“雙方坐下來一起商討決定”,最終還是會有一方對此事負責,推諉在所難免。

微服務的指導思想其中一塊就是關于組織機構調整的,這還有個專門的定律叫“康威定律”,感興趣的可以自行搜索了解。

我們的解決辦法也很有效果。在組織機構沒有完全按照微服務的理念重新規劃之前,這類需要跨組織協同完成的任務,直接成立臨時項目組:相關的部門出人的出人、出資源的出資源,指定/選拔一個能hold住的項目經理對整件事情負責,然后大家驚奇的發現:“部門墻”問題不見了,因為所有事情都是組內事情了,整體的完成情況跟全部項目組成員的業績都掛鉤了,事情推進就非常順利。在順利交付之后,項目組解散,各回各家。極大的提升了溝通效率、交付速度,同時使得資源利用率也得到了很大的提升。

其實很多時候,大家解決問題的想法和思路,并不是要有了微服務才這樣做,而是“不謀而合”,微服務就存在于我們日常工作的點點滴滴之中。

架構演進之「微服務架構」

有人問:我要搞微服務了,有啥建議么?

有的。通過我們不斷的摸索和總結,要做好微服務,就要做好一定的準備工作,從四個具體的方面來談:

業務拆分 – 體現在設計環節:在設計的時候,要有足夠的判斷力來合理的規劃服務之間的界限。

服務治理 – 底層技術的支持:首先要選一款適合自己實際情況的分布式服務基礎框架,對于服務的發現、治理、熔斷、降級,都要做好相應的技術準備。

自動測試:一定要自動化。微服務一個明顯的表象就是隨著服務的增多,如果繼續沿用傳統的測試模式就會遇到瓶頸,為了保證高效的迭代,盡量做到更多的環節實現自動化。

自動運維 :微服務拆分之后,每個服務都可以獨立部署,進而言之應該是隨時隨地可以升級。尤其當互聯網發展到今天,業務要保持對市場變化的一個高效響應,自動化運維就是提升交付速度的一個重要環節。

最后一定要提的是「監控」:包括硬件環境、服務狀態、系統健康度、接口調用情況、異常的實時告警以及潛在問題的事先預警等等。「監控」在實施微服務過程中會重要到什么程度呢?一句話:沒準備好監控,就不要搞微服務。
架構演進之「微服務架構」

最后,微服務不是銀彈,軟件領域沒有銀彈,微服務以其特有的優勢在解決一些問題的同時,也引入了其他問題,這幾點,必須要深刻的思考。

「三思而后行」。

架構演進之「微服務架構」

———————————————分割線————————————————
我是小微,專注微服務技術分享,致力挖掘更多“高、精、全”的微服務知識分享給大家。
我的微信:weiweiweiblack (備注:51CTO )
微信公號:黑少微服務,“分享技術,熱愛生活”,歡迎關注

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻栗坡县| 志丹县| 翁牛特旗| 东兰县| 仁寿县| 咸丰县| 巴彦县| 出国| 旬邑县| 新密市| 哈巴河县| 奉新县| 轮台县| 襄樊市| 陕西省| 延庆县| 扬州市| 大竹县| 镇雄县| 临西县| 福鼎市| 商水县| 贵阳市| 平乐县| 揭阳市| 广南县| 黎平县| 县级市| 鹤山市| 临泉县| 南皮县| 米泉市| 临武县| 平山县| 景洪市| 新沂市| 洛南县| 玉林市| 奇台县| 休宁县| 徐闻县|