五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

微服務(wù)架構(gòu)的優(yōu)缺點都有哪些?

2022-07-28 16:13 作者:行云創(chuàng)新  | 我要投稿

QQ的初始版本,叫OICQ,誰能想到,當(dāng)初讓馬化騰一度傾家蕩產(chǎn)想要賣掉的一款應(yīng)用,在幾年后成為了風(fēng)靡中國的火爆軟件。QQ也不例外,從一個小型的應(yīng)用架構(gòu),逐漸演變?yōu)橐粋€大型架構(gòu)。

再來看軟件架構(gòu)的發(fā)展,經(jīng)歷了從單體結(jié)構(gòu)、垂直架構(gòu)、SOA架構(gòu),隨著技術(shù)的不斷發(fā)展,微服務(wù)架構(gòu)的普及也已越來越高。

本篇文章,我們一起聊聊微服務(wù)架構(gòu)的優(yōu)缺點。也可以關(guān)注行云創(chuàng)新,獲取完整《微服務(wù)架構(gòu)建設(shè)指南》。

《微服務(wù)架構(gòu)建設(shè)指南》免費(fèi)下載地址:www.cloudtogo.cn/whitepaper。

應(yīng)用架構(gòu)演變

微服務(wù)架構(gòu)概述

微服務(wù)架構(gòu)風(fēng)格是一類將單一應(yīng)用程序作為由眾多小型服務(wù)構(gòu)成之套件加以開發(fā)的方式,其中各項服務(wù)都擁有自己的進(jìn)程并利用輕量化機(jī)制(通常為HTTP源API)實現(xiàn)通信。這些服務(wù)圍繞業(yè)務(wù)功能建立而成,且憑借自動化部署機(jī)制實現(xiàn)獨(dú)立部署。

微服務(wù)的特點

應(yīng)用程序邏輯分為明確定義的職責(zé)范圍的粒度組件,這些組件相互協(xié)調(diào)提供解決方案

每一個組件都有一個小的職責(zé)領(lǐng)域,可以完全部署,也就是說一個服務(wù)可以跨越多個應(yīng)用程序復(fù)用(獨(dú)立部署和維護(hù))

服務(wù)之間通信基于一些基本的原則,比如服務(wù)采用http+json這樣的輕量級通信協(xié)議,在不同服務(wù)之間進(jìn)行數(shù)據(jù)交換。這樣不同服務(wù)可以使用不同的技術(shù)棧,互不影響(采用輕量級的通信協(xié)議作為通信原則、松耦合)

拆分為微服務(wù)之后,服務(wù)的數(shù)量變多,因此需要有統(tǒng)一的服務(wù)治理平臺,來對各個服務(wù)進(jìn)行管理。(服務(wù)可治理,可管控)

微服務(wù)架構(gòu)的優(yōu)點

  • 每個服務(wù)都比較簡單,只關(guān)注于一個業(yè)務(wù)功能。

  • 微服務(wù)架構(gòu)方式是松耦合的,可以提供更高的靈活性。

  • 微服務(wù)可通過最佳及最合適的不同的編程語言與工具進(jìn)行開發(fā),能夠做到有的放矢地解決針對性問題。

  • 每個微服務(wù)可由不同團(tuán)隊獨(dú)立開發(fā),互不影響,加快推出市場的速度。

  • 微服務(wù)架構(gòu)是持續(xù)交付(CD)的巨大推動力,允許在頻繁發(fā)布不同服務(wù)的同時保持系統(tǒng)其他部分的可用性和穩(wěn)定性。

微服務(wù)結(jié)構(gòu)的通用性

通過服務(wù)實現(xiàn)應(yīng)用的組件化(按功能拆分、可獨(dú)立部署和維護(hù))

圍繞業(yè)務(wù)能力組織服務(wù),根據(jù)業(yè)務(wù)不同的需求進(jìn)行不同組件的使用

所做產(chǎn)品非項目化,對于平臺具有一定的通用性

微服務(wù)的缺點

運(yùn)營成本的增加,整體應(yīng)用可能只需部署至一小片應(yīng)用服務(wù)區(qū)集群,而微服務(wù)架構(gòu)可能變成需要構(gòu)建/測試/部署/運(yùn)行數(shù)十個獨(dú)立的服務(wù),并可能需要支持多種語言和環(huán)境。這導(dǎo)致一個整體式系統(tǒng)如果由20個微服務(wù)組成,可能需要40~60個進(jìn)程。

開發(fā)人員需要熟知運(yùn)維與投產(chǎn)環(huán)境,開發(fā)人員也需要掌握必要的數(shù)據(jù)存儲技術(shù)如NoSQL,具有較強(qiáng)DevOps技能的人員比較稀缺,會帶來招聘人才方面的挑戰(zhàn)。

把系統(tǒng)分為多個協(xié)作組件后會產(chǎn)生新的接口,這意味著簡單的交叉變化可能需要改變許多組件,并需協(xié)調(diào)一起發(fā)布。在實際環(huán)境中,一個新品發(fā)布可能被迫同時發(fā)布大量服務(wù),由于集成點的大量增加,微服務(wù)架構(gòu)會有更高的發(fā)布風(fēng)險。

“同步耦合引入到系統(tǒng)中”,有時需要向不同服務(wù)添加一些代碼,這就會導(dǎo)致代碼重復(fù)。

作為一種分布式系統(tǒng),微服務(wù)引入了復(fù)雜性和其他若干問題,例如網(wǎng)絡(luò)延遲、容錯性、消息序列化、不可靠的網(wǎng)絡(luò)、異步機(jī)制、版本化、差異化的工作負(fù)載等,開發(fā)人員需要考慮以上的分布式系統(tǒng)問題。

在動態(tài)環(huán)境下服務(wù)間的交互會產(chǎn)生非常微妙的行為,難以可視化及全面測試。經(jīng)典微服務(wù)往往不太重視測試,更多的是通過監(jiān)控發(fā)現(xiàn)生產(chǎn)環(huán)境的異常,進(jìn)而快速回滾或采取其他必要的行動。但對于特別在意風(fēng)險規(guī)避監(jiān)管或投產(chǎn)環(huán)境錯誤會產(chǎn)生顯著影響的場景下需要特別注意。

《微服務(wù)架構(gòu)建設(shè)指南》免費(fèi)下載地址:www.cloudtogo.cn/whitepaper。

微服務(wù)架構(gòu)設(shè)計過程中需要注意的點

  • 服務(wù)劃分過細(xì),服務(wù)間關(guān)系復(fù)雜

  • 服務(wù)數(shù)量太多,團(tuán)隊效率急劇下降

  • 調(diào)用鏈太長,性能下降

  • 調(diào)用鏈太長,問題定位困難

  • 沒有自動化支撐,無法快速交付(自動化測試、自動化部署、自動化監(jiān)控等)

  • 沒有服務(wù)治理,微服務(wù)數(shù)量多了后管理混亂(服務(wù)路由、服務(wù)故障隔離、服務(wù)注冊與發(fā)現(xiàn)等等)

  • 服務(wù)之間的配置依賴關(guān)系

微服務(wù)的拆分

服務(wù)粒度的劃分是伴隨著架構(gòu)演進(jìn)進(jìn)行的,需要考慮當(dāng)前的人力、物力等來有效的統(tǒng)籌,在項目的初期可以把服務(wù)的粒度設(shè)計大一點,隨著項目的不斷壯大,團(tuán)隊的規(guī)模不斷變大,可以對現(xiàn)有的粗粒度服務(wù)進(jìn)行有效的拆分,逐步的向細(xì)粒度服務(wù)發(fā)展。

基于業(yè)務(wù)邏輯進(jìn)行拆分

“職責(zé)范圍”的理解差異很大,因此根據(jù)業(yè)務(wù)拆分需要權(quán)衡當(dāng)前項目組的情況。

基于可擴(kuò)展拆分

“日志服務(wù)”和“升級服務(wù)”放在同一個子系統(tǒng)中;不穩(wěn)定的服務(wù)粒度可以細(xì)一些,但也不要太細(xì),始終記住要控制服務(wù)的總數(shù)量。這樣拆分主要是為了提升項目快速迭代的效率,避免在開發(fā)的時候,不小心影響了已有的成熟功能導(dǎo)致線上問題。

基于可靠性拆分

將系統(tǒng)中的業(yè)務(wù)模塊按照優(yōu)先級排序,將可靠性要求高的核心服務(wù)和可靠性要求低的非核心服務(wù)拆分開來,然后重點保證核心服務(wù)的高可用。這樣拆分帶來下面幾個好處:(避免非核心服務(wù)故障影響核心服務(wù)、核心服務(wù)高可用方案可以更簡單、能夠降低高可用成本)

基于性能拆分

基于性能拆分和基于可靠性拆分類似,將性能要求高或者性能壓力大的模塊拆分出來,避免性能壓力大的服務(wù)影響其他服務(wù)。常見的拆分方式和具體的性能瓶頸有關(guān),可以拆分 Web 服務(wù)、數(shù)據(jù)庫、緩存等。

《微服務(wù)架構(gòu)建設(shè)指南》免費(fèi)下載地址:www.cloudtogo.cn/whitepaper。

使用SpringBoot和SpringCloud構(gòu)建微服務(wù)

在基于java的應(yīng)用程序構(gòu)建中,spring已經(jīng)成為事實上的標(biāo)準(zhǔn)開發(fā)框架,spring框架迷人的地方就是能夠與時俱進(jìn)的進(jìn)行自我改造。隨著發(fā)展,spring團(tuán)隊不僅開發(fā)出了單體應(yīng)用程序模型,還轉(zhuǎn)向了高度分布式的模型,使服務(wù)能夠輕松的部署到云端,典型代表就是springboot和springcloud。

springboot是對spring框架理念的重新思考,雖然springboot包含了spring的核心特性,但是它剝離了spring中的許多企業(yè)特性,而是提供一個基于java的、面向REST的微服務(wù)框架,只是需要簡單的注解,java開發(fā)者就能快速構(gòu)建一個可打包和部署的REST微服務(wù)。

springcloud框架使實施和部署微服務(wù)到私有云或者公有云變得更加簡單,springcloud在一個公共框架之下封裝了許多流行的云管理微服務(wù)框架,并且讓這些技術(shù)的使用和部署像為代碼添加注解一樣簡單。


微服務(wù)架構(gòu)的優(yōu)缺點都有哪些?的評論 (共 條)

分享到微博請遵守國家法律
甘南县| 凤城市| 长岛县| 吉木乃县| 手机| 佛坪县| 军事| 石屏县| 林周县| 洛川县| 梁河县| 治多县| 华蓥市| 荆门市| 东乡县| 葫芦岛市| 微博| 赫章县| 广水市| 余姚市| 维西| 东阿县| 景谷| 沾化县| 神池县| 施甸县| 灵璧县| 祁连县| 武义县| 泽库县| 微博| 通辽市| 临夏市| 睢宁县| 曲靖市| 海宁市| 阳江市| 福海县| 铁岭县| 光山县| 永善县|