0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是微服務(wù)架構(gòu)_微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)及應(yīng)用

電子工程師 ? 來(lái)源:xx ? 2019-06-02 10:03 ? 次閱讀

什么是微服務(wù)架構(gòu)

簡(jiǎn)單地說(shuō),微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計(jì)風(fēng)格, 它的主旨是將一個(gè)原本獨(dú)立的系統(tǒng)拆分成多個(gè)小型服務(wù),這些小型服務(wù)都在各自獨(dú)立的進(jìn)程中運(yùn)行,服務(wù)之間通過(guò)基于HTTP的RESTful API進(jìn)行通信協(xié)作。被拆分成的每一個(gè)小型服務(wù)都圍繞著系統(tǒng)中的某一項(xiàng)或一些耦合度較高的業(yè)務(wù)功能進(jìn)行構(gòu)建, 并且每個(gè)服務(wù)都維護(hù)著自身的數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)開(kāi)發(fā)、自動(dòng)化測(cè)試案例以及獨(dú)立部署機(jī)制。

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

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

·每個(gè)微服務(wù)都很小,這樣能夠聚焦一個(gè)指定的業(yè)務(wù)功能或業(yè)務(wù)需求。

·微服務(wù)能夠被小團(tuán)隊(duì)單獨(dú)開(kāi)發(fā),這個(gè)小團(tuán)隊(duì)是2到5人的開(kāi)發(fā)人員組成。

·微服務(wù)是松耦合的,是有功能意義的服務(wù),無(wú)論是在開(kāi)發(fā)階段或部署階段都是獨(dú)立的。

·微服務(wù)能使用不同的語(yǔ)言開(kāi)發(fā),如Java、Python、PHP、C#等。

·微服務(wù)允許容易且靈活的方式集成自動(dòng)部署,通過(guò)持續(xù)集成工具,如Jenkins, Travis CI等工具。

·一個(gè)團(tuán)隊(duì)的新成員能夠更快投入生產(chǎn)。

·微服務(wù)易于被一個(gè)開(kāi)發(fā)人員理解,修改和維護(hù),這樣小團(tuán)隊(duì)能夠更關(guān)注自己的工作成果。無(wú)需通過(guò)合作才能體現(xiàn)價(jià)值。

·微服務(wù)允許你利用融合最新技術(shù)

·微服務(wù)只是業(yè)務(wù)邏輯的代碼,不會(huì)和HTML,CSS 或其他界面組件混合。

·微服務(wù)能夠即時(shí)被要求擴(kuò)展。

·微服務(wù)能部署中低端配置的服務(wù)器上。

·易于和第三方應(yīng)用系統(tǒng)集成。

·每個(gè)微服務(wù)都有自己的存儲(chǔ)能力,可以有自己的數(shù)據(jù)庫(kù),也可以有統(tǒng)一數(shù)據(jù)庫(kù)。

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

·微服務(wù)架構(gòu)可能引入過(guò)多的操作;

·需要提高DevOps應(yīng)用技巧;

·對(duì)于開(kāi)發(fā)和運(yùn)維帶來(lái)一定的挑戰(zhàn),需要付出雙倍的努力;

·分布式系統(tǒng)比單體應(yīng)用架構(gòu)復(fù)雜,且難以管理;

·對(duì)于故障診斷比較難,分布式部署跟蹤比單體架構(gòu)復(fù)雜;

·當(dāng)服務(wù)數(shù)量增加,管理復(fù)雜性增加。

微服務(wù)架構(gòu)在工業(yè)應(yīng)用上的實(shí)戰(zhàn)

下面以格創(chuàng)東智在某工業(yè)生產(chǎn)行業(yè)客戶(hù)進(jìn)行了微服務(wù)架構(gòu)的實(shí)際落地案例進(jìn)行說(shuō)明。目前該公司的微服務(wù)架構(gòu)如下圖所示。

該公司擁有MES、EDA、RPT、SPC、OEE、FDC等應(yīng)用,其中查詢(xún)、分析類(lèi)應(yīng)用已經(jīng)移植到微服務(wù)架構(gòu),使用的是Spring Cloud。

以RPT系統(tǒng)為例,使用SpringCloud之后,新增報(bào)表只需要開(kāi)發(fā)有關(guān)業(yè)務(wù)邏輯的代碼,其他配置、權(quán)限及校驗(yàn)代碼都由微服務(wù)架構(gòu)代勞,其開(kāi)發(fā)和測(cè)試部署相較之前更加快捷,而且融合了Python技術(shù),在某些特定場(chǎng)景下,系統(tǒng)運(yùn)行效率也有可觀(guān)的改善。

在異常分析系統(tǒng)中,之前使用的是Spark MLlib,但是在預(yù)測(cè)產(chǎn)品異常方面,Python的Keras效果更佳,在導(dǎo)入微服務(wù)架構(gòu)后,可以很方便的使用Scala和Python的“混合”架構(gòu),系統(tǒng)的分析準(zhǔn)確率得到了提升。

在移植過(guò)程中遇到了微服務(wù)的“邊界”問(wèn)題,在我們進(jìn)行微服務(wù)架構(gòu)設(shè)計(jì)和改造過(guò)程中,一個(gè)不可避免的問(wèn)題是如何確定服務(wù)邊界、如何進(jìn)行服務(wù)識(shí)別,微服務(wù)的劃分粒度究竟如何確認(rèn)。我們可能會(huì)聽(tīng)到,服務(wù)既不能太大,也不能太小,當(dāng)然這是一個(gè)籠統(tǒng)的概念。那么,問(wèn)題來(lái)了,究竟多大是大,多小是小。

一個(gè)設(shè)計(jì)良好的服務(wù)應(yīng)包含以下五個(gè)特征:

特征一:服務(wù)不與其他服務(wù)共享數(shù)據(jù)庫(kù)

特征二:服務(wù)應(yīng)包含盡可能少的數(shù)據(jù)庫(kù)表

特征三:一個(gè)服務(wù)要么包含完整的業(yè)務(wù)含義,要么是放之四海皆通用的公共服務(wù)。

特征四:一個(gè)良好的服務(wù)應(yīng)首先確保其數(shù)據(jù)可用性。

特征五:在一個(gè)業(yè)務(wù)系統(tǒng)中,一個(gè)服務(wù)只能是并且唯一的可信來(lái)源。

MES系統(tǒng)和EDA系統(tǒng)這一類(lèi)與生產(chǎn)強(qiáng)相關(guān)的應(yīng)用,業(yè)務(wù)邏輯復(fù)雜,耦合性強(qiáng),進(jìn)行服務(wù)“拆分”很難符合以上5個(gè)特征。所以暫時(shí)無(wú)法對(duì)其進(jìn)行“拆分”。

綜上所述,微服務(wù)架構(gòu)比較適合制造業(yè)應(yīng)用中查詢(xún)、分析類(lèi)應(yīng)用,在生產(chǎn)控制這一類(lèi)與生產(chǎn)強(qiáng)相關(guān)的應(yīng)用上的作用還有待挖掘。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    微服務(wù)架構(gòu)和CQRS架構(gòu)基本概念介紹

    微服務(wù)架構(gòu)現(xiàn)在很熱,到處可以看到各大互聯(lián)網(wǎng)公司的微服務(wù)實(shí)踐的分享總結(jié)。但是,我今天的分享和微服務(wù)沒(méi)有關(guān)系,希望可以帶給大家一些新的東西。如果一定要說(shuō)
    發(fā)表于 05-22 09:03

    微服務(wù)架構(gòu)與實(shí)踐摘要

    本文主要類(lèi)容是對(duì)微服務(wù)架構(gòu)與實(shí)踐摘要解析。微服務(wù)架構(gòu)中的 “微” 體現(xiàn)了其核心要素,即服務(wù)的微型化,就是每個(gè)
    的頭像 發(fā)表于 02-07 16:57 ?6030次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>與實(shí)踐摘要

    微服務(wù)優(yōu)缺點(diǎn)解析

    微服務(wù)不是一個(gè)名字,而是一個(gè)架構(gòu)的概念。微服務(wù)架構(gòu)是對(duì)原來(lái)的大型系統(tǒng)而言的,通過(guò)橫向或者縱向、業(yè)務(wù)或者架構(gòu)切分,將一個(gè)大型的系統(tǒng)分散成很多微
    的頭像 發(fā)表于 02-09 09:01 ?8460次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>優(yōu)缺點(diǎn)</b>解析

    微服務(wù)優(yōu)勢(shì)_微服務(wù)架構(gòu)的好處與不足

    是相互獨(dú)立的,所以不同的服務(wù)可以使用不同的語(yǔ)言來(lái)開(kāi)發(fā),或者根據(jù)業(yè)務(wù)的需求使用不同類(lèi)型的數(shù)據(jù)庫(kù)??偠灾?b class='flag-5'>微服務(wù)架構(gòu)有很多吸引人的地方,不過(guò)在擁抱微服務(wù)之前要認(rèn)清它所帶來(lái)的挑戰(zhàn)。而每一種
    發(fā)表于 02-23 11:24 ?4355次閱讀

    SOA架構(gòu)微服務(wù)架構(gòu)的主要區(qū)別

    SOA和微服務(wù)架構(gòu)一個(gè)層面的東西,而對(duì)于ESB和微服務(wù)網(wǎng)關(guān)是一個(gè)層面的東西,一個(gè)談到是架構(gòu)風(fēng)格和方法,一個(gè)談的是實(shí)現(xiàn)工具或組件。SOA架構(gòu)
    的頭像 發(fā)表于 05-04 14:11 ?5676次閱讀
    SOA<b class='flag-5'>架構(gòu)</b>和<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的主要區(qū)別

    微服務(wù)架構(gòu)有哪些_微服務(wù)架構(gòu)設(shè)計(jì)模式

    小伙伴們知道常用的微服務(wù)架構(gòu)框架有哪些嗎?上回我們介紹了一些常用的微服務(wù)架構(gòu)設(shè)計(jì)模式,這次我們就來(lái)了解一下一些常用的微服務(wù)
    的頭像 發(fā)表于 05-17 17:06 ?2.9w次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>有哪些_<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>設(shè)計(jì)模式

    微服務(wù)架構(gòu)的特點(diǎn)_微服務(wù)架構(gòu)適用場(chǎng)景

     微服務(wù)架構(gòu)是一項(xiàng)在云中部署應(yīng)用和服務(wù)的新技術(shù)。
    的頭像 發(fā)表于 05-17 17:28 ?4931次閱讀

    微服務(wù)軟件架構(gòu)應(yīng)用研究綜述

    自2014年,微服務(wù)架構(gòu)概念經(jīng)Martin Flower提出以來(lái),受到廣泛關(guān)注,為更好了解微服務(wù)架構(gòu)風(fēng)格,本文首先分析、梳理了軟件架構(gòu)的發(fā)展
    發(fā)表于 05-26 09:26 ?2次下載

    微服務(wù)架構(gòu)簡(jiǎn)介和優(yōu)勢(shì)

    微服務(wù)是小型的獨(dú)立服務(wù),可以獨(dú)立演進(jìn)并單獨(dú)部署,以支持持續(xù)集成和持續(xù)交付。微服務(wù)架構(gòu)促進(jìn)開(kāi)發(fā)和部署由獨(dú)立、自主、模塊化、自包含單元組成的應(yīng)用程序或一組功能。每個(gè)單位都被分配給擁有它的團(tuán)
    的頭像 發(fā)表于 11-30 15:41 ?1578次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>簡(jiǎn)介和優(yōu)勢(shì)

    微服務(wù)架構(gòu)中的服務(wù)之間如何互相調(diào)用呢?

    微服務(wù)架構(gòu)中,需要調(diào)用很多服務(wù)才能完成一項(xiàng)功能。服務(wù)之間如何互相調(diào)用就變成微服務(wù)架構(gòu)中的一個(gè)關(guān)
    的頭像 發(fā)表于 01-31 09:46 ?2064次閱讀

    什么是微服務(wù)架構(gòu)

    在Medium,我們的技術(shù)堆棧始于2012年的單片Node.js應(yīng)用程序。我們已經(jīng)構(gòu)建了幾個(gè)衛(wèi)星服務(wù),但我們還沒(méi)有制定一個(gè)系統(tǒng)地采用微服務(wù)架構(gòu)的策略。隨著系統(tǒng)變得越來(lái)越復(fù)雜并且團(tuán)隊(duì)不斷發(fā)展,我們?cè)?018年初轉(zhuǎn)向了
    的頭像 發(fā)表于 02-24 11:15 ?1259次閱讀
    什么是<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>?

    從分層架構(gòu)微服務(wù)架構(gòu)介紹(五)

    本文要介紹的是 服務(wù)架構(gòu) (Service-Based Architecture, SBA )。 SBA 可以看成是單體架構(gòu)微服務(wù)架構(gòu)
    的頭像 發(fā)表于 05-10 17:02 ?724次閱讀
    從分層<b class='flag-5'>架構(gòu)</b>到<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>介紹(五)

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

    Spring Cloud是一個(gè)開(kāi)源的微服務(wù)架構(gòu)框架,它提供了一系列工具和組件,用于構(gòu)建和管理分布式系統(tǒng)中的微服務(wù)。它基于Spring框架,旨在通過(guò)簡(jiǎn)化開(kāi)發(fā)過(guò)程和降低系統(tǒng)復(fù)雜性來(lái)幫助開(kāi)發(fā)人員構(gòu)建彈性
    的頭像 發(fā)表于 11-23 09:24 ?930次閱讀

    docker微服務(wù)架構(gòu)實(shí)戰(zhàn)

    隨著云計(jì)算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開(kāi)發(fā)領(lǐng)域中變得越來(lái)越流行。微服務(wù)架構(gòu)將一個(gè)大型的軟件應(yīng)用拆分成多個(gè)小型的、獨(dú)立部署的服務(wù)
    的頭像 發(fā)表于 11-23 09:26 ?514次閱讀

    設(shè)計(jì)微服務(wù)架構(gòu)的原則

    微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴(kuò)展性。你可能會(huì)想,我的團(tuán)隊(duì)需不需要采用微服務(wù),設(shè)計(jì)微服務(wù)架構(gòu)有哪些原則?本文會(huì)給你一些靈感
    的頭像 發(fā)表于 11-26 08:05 ?453次閱讀
    設(shè)計(jì)<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的原則