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

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

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

微服務(wù)架構(gòu)在工業(yè)制造當(dāng)中的應(yīng)用

電子設(shè)計(jì) ? 來源: 電子設(shè)計(jì) ? 作者: 電子設(shè)計(jì) ? 2020-12-25 02:34 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文作者:

格創(chuàng)東智大數(shù)據(jù)系統(tǒng)集成部 王子超(轉(zhuǎn)載請注明作者及來源)

審核編輯 黃昊宇

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

    評論

    相關(guān)推薦

    寶藏級微服務(wù)架構(gòu)工具合集

    寶藏級熱門微服務(wù)架構(gòu)工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot簡化了微服務(wù)
    的頭像 發(fā)表于 12-21 16:33 ?140次閱讀

    NVIDIA NIM微服務(wù)登陸亞馬遜云科技

    經(jīng)過優(yōu)化的 NIM 微服務(wù)現(xiàn)可在 Amazon Bedrock Marketplace、SageMaker JumpStart 和 AWS Marketplace 上獲取,用于各種 NVIDIA 和生態(tài)系統(tǒng)模型。
    的頭像 發(fā)表于 12-06 13:33 ?207次閱讀

    k8s微服務(wù)架構(gòu)就是云原生嗎?兩者是什么關(guān)系

    k8s微服務(wù)架構(gòu)就是云原生嗎?K8s微服務(wù)架構(gòu)并不等同于云原生,但兩者之間存在密切的聯(lián)系。Kubernetes云原生
    的頭像 發(fā)表于 11-25 09:39 ?146次閱讀

    SSR與微服務(wù)架構(gòu)的結(jié)合應(yīng)用

    隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,前端技術(shù)棧不斷更新迭代,后端架構(gòu)也經(jīng)歷了從單體應(yīng)用到微服務(wù)的變革。在這個過程中,服務(wù)端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術(shù),與微服務(wù)
    的頭像 發(fā)表于 11-18 11:34 ?326次閱讀

    架構(gòu)與設(shè)計(jì) 常見微服務(wù)分層架構(gòu)的區(qū)別和落地實(shí)踐

    架構(gòu)風(fēng)格越傾向于清晰的職責(zé)定位,且讓領(lǐng)域模型成為架構(gòu)的核心。 基于這些架構(gòu)風(fēng)格,軟件架構(gòu)設(shè)計(jì)過程中又有非常多的
    的頭像 發(fā)表于 10-22 15:34 ?237次閱讀
    <b class='flag-5'>架構(gòu)</b>與設(shè)計(jì) 常見<b class='flag-5'>微服務(wù)</b>分層<b class='flag-5'>架構(gòu)</b>的區(qū)別和落地實(shí)踐

    微服務(wù)架構(gòu)與容器云的關(guān)系與區(qū)別

    微服務(wù)架構(gòu)與容器云密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨(dú)立的服務(wù),而容器云基于容器技術(shù),為微服務(wù)提供構(gòu)建、發(fā)布和運(yùn)行的平臺。區(qū)別
    的頭像 發(fā)表于 10-21 17:28 ?226次閱讀

    入門級攻略:如何容器化部署微服務(wù)?

    第一步理解容器化基礎(chǔ),第二步創(chuàng)建Dockerfile,第三步構(gòu)建推送鏡像,第四步部署微服務(wù),第五步管理微服務(wù)、第六步優(yōu)化更新。容器化部署微服務(wù)是現(xiàn)代軟件開發(fā)中的一種高效方法,可提供良好的可移植性、可擴(kuò)展性和管理性。容器化部署
    的頭像 發(fā)表于 10-09 10:08 ?156次閱讀

    服務(wù)器而言,ARM架構(gòu)與X86架構(gòu)有什么區(qū)別?各自的優(yōu)勢在哪里?

    ,x86 架構(gòu)服務(wù)市場占主導(dǎo),有強(qiáng)大處理能力和廣泛軟件兼容性,廣泛用于企業(yè)數(shù)據(jù)中心。ARM 架構(gòu)服務(wù)器近年崛起,憑借低功耗、高效能優(yōu)勢
    的頭像 發(fā)表于 09-09 14:05 ?1772次閱讀

    Proxyless的多活流量和微服務(wù)治理

    1. 引言 1.1 項(xiàng)目的背景及意義 在當(dāng)今的微服務(wù)架構(gòu)中,應(yīng)用程序通常被拆分成多個獨(dú)立的服務(wù),這些服務(wù)通過網(wǎng)絡(luò)進(jìn)行通信。這種架構(gòu)的優(yōu)勢在于
    的頭像 發(fā)表于 08-28 16:54 ?1588次閱讀
    Proxyless的多活流量和<b class='flag-5'>微服務(wù)</b>治理

    NVIDIA NIM微服務(wù)帶來巨大優(yōu)勢

    服務(wù)通過熱門 AI 模型為數(shù)百萬開發(fā)者帶來高達(dá) 5 倍的 token 效率提升,使他們能夠立即訪問 NVIDIA DGX Cloud 上運(yùn)行的 NIM 微服務(wù)。
    的頭像 發(fā)表于 08-23 15:20 ?492次閱讀

    采用OpenUSD和NVIDIA NIM微服務(wù)創(chuàng)建精準(zhǔn)品牌視覺

    全球領(lǐng)先的創(chuàng)意和制作服務(wù)機(jī)構(gòu)率先采用 OpenUSD 和 NVIDIA NIM 微服務(wù)來創(chuàng)建精準(zhǔn)的品牌視覺。
    的頭像 發(fā)表于 08-01 14:33 ?423次閱讀

    全新 NVIDIA NeMo Retriever微服務(wù)大幅提升LLM的準(zhǔn)確性和吞吐量

    企業(yè)能夠通過提供檢索增強(qiáng)生成功能的生產(chǎn)就緒型 NVIDIA NIM 推理微服務(wù),充分挖掘業(yè)務(wù)數(shù)據(jù)的價(jià)值。這些微服務(wù)現(xiàn)已集成到 Cohesity、DataStax、NetApp 和 Snowflake 平臺中。
    的頭像 發(fā)表于 07-26 11:13 ?837次閱讀
    全新 NVIDIA NeMo Retriever<b class='flag-5'>微服務(wù)</b>大幅提升LLM的準(zhǔn)確性和吞吐量

    【算能RADXA微服務(wù)器試用體驗(yàn)】Radxa Fogwise 1684X Mini 規(guī)格

    通過網(wǎng)絡(luò)可以了解到,算能RADXA微服務(wù)器的具體規(guī)格: 處理器:BM1684X 算力:高達(dá)32Tops INT8峰值算力 內(nèi)存:16GB LPDDR4X 內(nèi)存 存儲:64GB eMMC 編程框架
    發(fā)表于 02-28 11:21

    Java微服務(wù)隨機(jī)掉線排查過程簡析

    我們的業(yè)務(wù)共使用 11 臺(阿里云)服務(wù)器,使用 SpringcloudAlibaba 構(gòu)建微服務(wù)集群, 共計(jì) 60 個微服務(wù), 全部注冊同一個 Nacos 集群。
    的頭像 發(fā)表于 01-13 17:41 ?941次閱讀
    Java<b class='flag-5'>微服務(wù)</b>隨機(jī)掉線排查過程簡析

    游戲公司不使用微服務(wù)架構(gòu)的原因

    微服務(wù)基本只有 request/response 的模式。做不了 streaming?微服務(wù)通常要求應(yīng)用是無狀態(tài)的才能做到水平擴(kuò)展。streaming 本身就是加入了狀態(tài)
    的頭像 發(fā)表于 12-29 11:18 ?443次閱讀