国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

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

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

QQ的初始版本,叫OICQ,誰能想到,當(dāng)初讓馬化騰一度傾家蕩產(chǎn)想要賣掉的一款應(yīng)用,在幾年后成為了風(fēng)靡中國的火爆軟件。QQ也不例外,從一個(gè)小型的應(yīng)用架構(gòu),逐漸演變?yōu)橐粋€(gè)大型架構(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)缺點(diǎn)。也可以關(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ā)的方式,其中各項(xiàng)服務(wù)都擁有自己的進(jìn)程并利用輕量化機(jī)制(通常為HTTP源API)實(shí)現(xiàn)通信。這些服務(wù)圍繞業(yè)務(wù)功能建立而成,且憑借自動(dòng)化部署機(jī)制實(shí)現(xiàn)獨(dú)立部署。

微服務(wù)的特點(diǎn)

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

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

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

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

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

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

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

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

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

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

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

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

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

所做產(chǎn)品非項(xiàng)目化,對(duì)于平臺(tái)具有一定的通用性

微服務(wù)的缺點(diǎn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

微服務(wù)的拆分

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

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

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

基于可擴(kuò)展拆分

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

基于可靠性拆分

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

基于性能拆分

基于性能拆分和基于可靠性拆分類似,將性能要求高或者性能壓力大的模塊拆分出來,避免性能壓力大的服務(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)成為事實(shí)上的標(biāo)準(zhǔn)開發(fā)框架,spring框架迷人的地方就是能夠與時(shí)俱進(jìn)的進(jìn)行自我改造。隨著發(fā)展,spring團(tuán)隊(duì)不僅開發(fā)出了單體應(yīng)用程序模型,還轉(zhuǎn)向了高度分布式的模型,使服務(wù)能夠輕松的部署到云端,典型代表就是springboot和springcloud。

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

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


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

分享到微博請(qǐng)遵守國家法律
城固县| 南召县| 福鼎市| 延寿县| 蓬溪县| 科尔| 南京市| 项城市| 汉阴县| 灵寿县| 江都市| 沂源县| 随州市| 衡阳市| 英山县| 濮阳市| 雷州市| 田东县| 屯昌县| 百色市| 卢氏县| 金寨县| 分宜县| 逊克县| 富裕县| 浦江县| 呼伦贝尔市| 丹东市| 陵水| 略阳县| 玛多县| 梁平县| 阳信县| 兰溪市| 河西区| 金阳县| 福建省| 玉屏| 武汉市| 宁安市| 梁河县|