欧美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ù)訪問對象(Dao),程序在編寫完成后被打包部署為一個(gè)具體的應(yīng)用。如圖所示:

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

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

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

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

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

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

缺點(diǎn)

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

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

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

缺點(diǎn)

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

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

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

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

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

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

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

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

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

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

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

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

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

(2)服務(wù)的注冊與發(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)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了如何用JAVA導(dǎo)出CSV文件,文中案例代碼十分詳細(xì),對大家的學(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)、抽象類和接口詳解

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

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

最新評論