欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Java 微服務(wù)架構(gòu)

 更新時(shí)間:2021年02月02日 10:44:48   作者:程序員曾曾  
這篇文章主要介紹了Java 微服務(wù)架構(gòu)的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

一、傳統(tǒng)的整體式架構(gòu)

傳統(tǒng)的整體式架構(gòu)都是模塊化的設(shè)計(jì)邏輯,如展示(Views)、應(yīng)用程序邏輯(Controller)、業(yè)務(wù)邏輯(Service)和數(shù)據(jù)訪問(wèn)對(duì)象(Dao),程序在編寫(xiě)完成后被打包部署為一個(gè)具體的應(yīng)用。如圖所示:

系統(tǒng)的水平擴(kuò)展

如果要對(duì)系統(tǒng)進(jìn)行水平擴(kuò)展,通常情況下,只需要增加服務(wù)器的數(shù)量,并將打包好的應(yīng)用拷貝到不同的服務(wù)器,然后通過(guò)負(fù)載均衡器(Nginx)就可以輕松實(shí)現(xiàn)應(yīng)用的水平擴(kuò)展。

整體式架構(gòu)的缺點(diǎn)

  • 應(yīng)用復(fù)雜度增加,更新、維護(hù)困難。
  • 易造成系統(tǒng)資源浪費(fèi)。
  • 影響開(kāi)發(fā)效率。
  • 應(yīng)用可靠性低。
  • 不利于技術(shù)更新。

二、面向服務(wù)的架構(gòu)SOA(Service-Oriented Architecture)

SOA的思路是把應(yīng)用中相近的功能聚合在一起,以服務(wù)的形式提供出去。如圖所示:

缺點(diǎn)

雖然SOA解決了整體式架構(gòu)中的問(wèn)題,但多數(shù)情況下,SOA中相互獨(dú)立的服務(wù)仍然會(huì)部署在同一個(gè)運(yùn)行環(huán)境中。和整體式架構(gòu)類(lèi)似,隨著業(yè)務(wù)功能的增多,SOA的服務(wù)會(huì)變得越來(lái)越復(fù)雜。本質(zhì)上看,整體式架構(gòu)的問(wèn)題并沒(méi)有因?yàn)槭褂肧OA而變得更好。

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

微服務(wù)架構(gòu)是一種架構(gòu)風(fēng)格和架構(gòu)思想,它倡導(dǎo)我們?cè)趥鹘y(tǒng)軟件應(yīng)用架構(gòu)的基礎(chǔ)上,將系統(tǒng)業(yè)務(wù)按照功能拆分為更加細(xì)粒度的服務(wù),所拆分的每一個(gè)服務(wù)都是一個(gè)獨(dú)立的應(yīng)用,這些應(yīng)用對(duì)外提供公共的API,可以獨(dú)立承擔(dān)對(duì)外服務(wù)的職責(zé),通過(guò)此種思想方式所開(kāi)發(fā)的軟件服務(wù)實(shí)體就是“微服務(wù)”,而圍繞著微服務(wù)思想構(gòu)建的一系列結(jié)構(gòu)(包括開(kāi)發(fā)、測(cè)試、部署等),我們可以將它稱(chēng)之為“微服務(wù)架構(gòu)”。如圖所示:

缺點(diǎn)

  • 開(kāi)發(fā)人員必須處理創(chuàng)建分布式系統(tǒng)的復(fù)雜性。
  • 部署的復(fù)雜性。
  • 增加內(nèi)存消耗。

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

四、如何構(gòu)建微服務(wù)架構(gòu)

微服務(wù)架構(gòu)的組件

(1)服務(wù)注冊(cè)中心:注冊(cè)系統(tǒng)中所有服務(wù)的地方。

(2)服務(wù)注冊(cè):服務(wù)提供方將自己調(diào)用地址注冊(cè)到服務(wù)注冊(cè)中心,讓服務(wù)調(diào)用方能夠方便地找到自己。

(3)服務(wù)發(fā)現(xiàn):服務(wù)調(diào)用方從服務(wù)注冊(cè)中心找到自己需要調(diào)用服務(wù)的地址。

(4)負(fù)載均衡:服務(wù)提供方一般以多實(shí)例的形式提供服務(wù),使用負(fù)載均衡能夠讓服務(wù)調(diào)用方連接到合適的服務(wù)節(jié)點(diǎn)。

(5)服務(wù)容錯(cuò):通過(guò)斷路器(也稱(chēng)熔斷器)等一系列的服務(wù)保護(hù)機(jī)制,保證服務(wù)調(diào)用者在調(diào)用異常服務(wù)時(shí)能快速地返回結(jié)果,避免大量的同步等待。

(6)服務(wù)網(wǎng)關(guān):也稱(chēng)為API網(wǎng)關(guān),是服務(wù)調(diào)用的唯一入口,可以在這個(gè)組件中實(shí)現(xiàn)用戶鑒權(quán)、動(dòng)態(tài)路由、灰度發(fā)布、負(fù)載限流等功能。

(7)分布式配置中心:將本地化的配置信息(properties、yml、yaml等)注冊(cè)到配置中心,實(shí)現(xiàn)程序包在開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境的無(wú)差別性,方便程序包的遷移。

微服務(wù)架構(gòu)的技術(shù)選型

(1)微服務(wù)實(shí)例的開(kāi)發(fā):SpringBoot

(2)服務(wù)的注冊(cè)與發(fā)現(xiàn):Spring Cloud Eureka

(3)負(fù)載均衡:Spring Cloud Ribbon

(4)服務(wù)容錯(cuò):Spring Cloud Hystrix

(5)API網(wǎng)關(guān):Spring Cloud Zuul

(6)分布式配置中心:Spring Cloud Config

(7)調(diào)試:Swagger

(8)部署:Docker

(9)持續(xù)集成:Jenkins

以上就是詳解Java 微服務(wù)架構(gòu)的詳細(xì)內(nèi)容,更多關(guān)于Java 微服務(wù)架構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java/word+fusionchart生成圖表深入分析

    java/word+fusionchart生成圖表深入分析

    本文將以java/word+fusionchart生成圖表問(wèn)題深入解析,有興趣的朋友可以參考下
    2012-11-11
  • Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)(控制臺(tái)版本)

    Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)(控制臺(tái)版本)

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)控制臺(tái)版本的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 關(guān)于jpa中無(wú)法刪除onetomany中many問(wèn)題的解決

    關(guān)于jpa中無(wú)法刪除onetomany中many問(wèn)題的解決

    這篇文章主要介紹了關(guān)于jpa中無(wú)法刪除onetomany中many問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法

    SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • 利用SpringBoot解決多個(gè)定時(shí)任務(wù)阻塞的問(wèn)題

    利用SpringBoot解決多個(gè)定時(shí)任務(wù)阻塞的問(wèn)題

    當(dāng)我們?cè)赟pring Boot應(yīng)用中使用多個(gè)定時(shí)任務(wù)時(shí),任務(wù)之間的阻塞可能是一個(gè)常見(jiàn)的問(wèn)題,這可能會(huì)因任務(wù)之間的依賴、執(zhí)行時(shí)間過(guò)長(zhǎng)或資源爭(zhēng)用等原因而發(fā)生,本文讓我們深入探討如何利用Spring Boot來(lái)解決多個(gè)定時(shí)任務(wù)阻塞的問(wèn)題,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-01-01
  • Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法

    Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法

    本文主要介紹了Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Mybatis中強(qiáng)大的resultMap功能介紹

    Mybatis中強(qiáng)大的resultMap功能介紹

    這篇文章主要給大家介紹了關(guān)于Mybatis中強(qiáng)大的resultMap功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • JAVA導(dǎo)出CSV文件實(shí)例教程

    JAVA導(dǎo)出CSV文件實(shí)例教程

    這篇文章主要介紹了如何用JAVA導(dǎo)出CSV文件,文中案例代碼十分詳細(xì),對(duì)大家的學(xué)習(xí)有所幫助,感興趣的朋友可以了解下
    2020-06-06
  • 詳解Java程序并發(fā)的Wait-Notify機(jī)制

    詳解Java程序并發(fā)的Wait-Notify機(jī)制

    這篇文章主要介紹了詳解Java程序并發(fā)的Wait-Notify機(jī)制,多線程并發(fā)是Java編程中的重要部分,需要的朋友可以參考下
    2015-07-07
  • Java中的多態(tài)、抽象類(lèi)和接口詳解

    Java中的多態(tài)、抽象類(lèi)和接口詳解

    這篇文章詳細(xì)講解了Java的多態(tài)、抽象類(lèi)和接口,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論