国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用

這篇具有很好參考價值的文章主要介紹了SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一, 服務(wù)架構(gòu)的演變

1.1 單體架構(gòu)

1.2 分布式架構(gòu)

1.3 微服務(wù)

1.4 SpringCloud

二, 服務(wù)拆分和遠(yuǎn)程調(diào)用

2,1 服務(wù)拆分原則

2.2 服務(wù)拆分示例

2.3 創(chuàng)建相應(yīng)數(shù)據(jù)庫

?2.4 實(shí)現(xiàn)遠(yuǎn)程調(diào)用示例

1, 更改需求

2, 注冊RestTemplate實(shí)現(xiàn)遠(yuǎn)程調(diào)用

?2.5 服務(wù)消費(fèi)者和提供者


一, 服務(wù)架構(gòu)的演變

1.1 單體架構(gòu)

將業(yè)務(wù)的所有功能集中在一個項(xiàng)目中開發(fā),打成一個包進(jìn)行部署項(xiàng)目稱為單體架構(gòu).

假設(shè)有一個商城項(xiàng)目,該項(xiàng)目包含訂單模塊,用戶功能,商品功能以及支付功能,將該項(xiàng)目進(jìn)行部署時,只需要將該項(xiàng)目的所有功能打包成一個包部署在Tomcat上即可,該項(xiàng)目所有業(yè)務(wù)功能都只訪問一個數(shù)據(jù)庫,如圖所示:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

單體架構(gòu)的優(yōu)點(diǎn):結(jié)構(gòu)簡單,部署成本低(只需要將整個項(xiàng)目打包放在一個Tomcat下即可);

單體架構(gòu)的缺點(diǎn):耦合度高(因?yàn)橐粋€項(xiàng)目中包含了所有業(yè)務(wù)功能,不同業(yè)務(wù)之間的數(shù)據(jù)都密切耦合).

1.2 分布式架構(gòu)

根據(jù)業(yè)務(wù)功能對系統(tǒng)進(jìn)行拆分,每個業(yè)務(wù)模塊作為獨(dú)立項(xiàng)目開發(fā),稱為一個服務(wù),多個這樣的服務(wù)的組合稱為分布式.

還是商城項(xiàng)目,項(xiàng)目包含4個業(yè)務(wù)功能,每個業(yè)務(wù)功能只需要開發(fā)和自己業(yè)務(wù)相關(guān)的代碼即可,用戶需要獲取數(shù)據(jù)時只需要調(diào)用相應(yīng)的模塊即可,但是這幾個模塊使用的還是同一個數(shù)據(jù)庫,如圖所示:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

分布式架構(gòu)的優(yōu)點(diǎn):降低服務(wù)耦合(業(yè)務(wù)和業(yè)務(wù)之間相互獨(dú)立),有利于服務(wù)的升級和拓展(需要其他業(yè)務(wù)模塊時只需要單獨(dú)開發(fā)該模塊的代碼即可);

分布式架構(gòu)的缺點(diǎn):服務(wù)調(diào)用關(guān)系錯綜復(fù)雜(假設(shè)某一個業(yè)務(wù)模塊需要其他業(yè)務(wù)模塊時就需要調(diào)用其他模塊進(jìn)行數(shù)據(jù)的獲取).

1.3 微服務(wù)

分布式架構(gòu)相對于單體架構(gòu)一定程度上降低了業(yè)務(wù)模塊之間的耦合性,但是正因?yàn)闃I(yè)務(wù)模塊之間的耦合,不同業(yè)務(wù)模塊想要進(jìn)行交互時就會變的更加困難,還有我們定義的不同業(yè)務(wù)的粒度是多大,如何做到業(yè)務(wù)模塊拆分的比較合理等等都是需要進(jìn)一步解決的,所以引出了微服務(wù)的概念,微服務(wù)需要解決的問題如下:

  • 服務(wù)粒度的拆分;
  • 服務(wù)集群地址的維護(hù);
  • 服務(wù)之間的遠(yuǎn)程調(diào)用;
  • 服務(wù)健康狀態(tài)的感知.

微服務(wù)的架構(gòu)特征

  • 單一職責(zé):微服務(wù)拆分粒度很小,每一個服務(wù)對應(yīng)唯一的業(yè)務(wù)能力,做到單一職責(zé);
  • 自治:團(tuán)隊(duì)獨(dú)立,技術(shù)獨(dú)立,數(shù)據(jù)獨(dú)立,獨(dú)立部署和交付;
  • 面向服務(wù):服務(wù)提供統(tǒng)一標(biāo)準(zhǔn)接口,與語言技術(shù)無關(guān);
  • 隔離性強(qiáng):服務(wù)調(diào)用做好隔離,容錯,降級,避免出現(xiàn)級聯(lián)問題.

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

用戶進(jìn)行服務(wù)訪問時,會先經(jīng)過服務(wù)網(wǎng)關(guān),網(wǎng)關(guān)進(jìn)行請求的過濾和路由,路由到相應(yīng)的服務(wù)上,在相應(yīng)的服務(wù)上進(jìn)行數(shù)據(jù)庫的訪問等操作.

微服務(wù)的上述特性其實(shí)是在給分布式架構(gòu)制定一個標(biāo)準(zhǔn),進(jìn)一步降低服務(wù)之間的耦合度,提供服務(wù)的獨(dú)立性和靈活性,做到高內(nèi)聚低耦合.

1.4 SpringCloud

從上述微服務(wù)的特征來看,可以認(rèn)為微服務(wù)是一種經(jīng)過良好架構(gòu)設(shè)計的分布式架構(gòu)方案,但是方案該怎么落地?選用什么樣的技術(shù)棧?全球的互聯(lián)網(wǎng)公司都在積極嘗試自己的微服務(wù)落地方案,其中Java領(lǐng)域最引人注目的就是SpringCloud提供的方案了.

SpringCloud是目前國內(nèi)使用最廣泛的微服務(wù)框架;官網(wǎng)地址:Spring CloudSpring Cloud

SpringCloud集成了各種微服務(wù)功能組件,并基于SpringBoot實(shí)現(xiàn)了這些組件的自動裝配,從而提供了良好的開箱即用體驗(yàn),其中常見的組件包括:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

二, 服務(wù)拆分和遠(yuǎn)程調(diào)用

任何分布式架構(gòu)都離不開服務(wù)的拆分,微服務(wù)也是一樣.

2,1 服務(wù)拆分原則

微服務(wù)拆分一般有以下幾個原則:

  • 不同微服務(wù),不要重復(fù)開發(fā)相同業(yè)務(wù);
  • 微服務(wù)數(shù)據(jù)獨(dú)立,不要訪問其他微服務(wù)的數(shù)據(jù)庫;
  • 微服務(wù)可以將自己的業(yè)務(wù)暴露為接口,供其他微服務(wù)調(diào)用.

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

2.2 服務(wù)拆分示例

假設(shè)有一個微服務(wù)名為cloud-demo,其結(jié)構(gòu)如下:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?cloud-demo:父工程,管理依賴

  • order-service:訂單微服務(wù),負(fù)責(zé)訂單相關(guān)業(yè)務(wù)
  • user-service:用戶微服務(wù),負(fù)責(zé)用戶相關(guān)業(yè)務(wù)

要求:

  • 訂單微服務(wù)和用戶微服務(wù)都必須有各自的數(shù)據(jù)庫,相互獨(dú)立
  • 訂單微服務(wù)和用戶服務(wù)都對外暴露Restful的接口(供其他微服務(wù)進(jìn)行調(diào)用)
  • 訂單服務(wù)如果需要查詢用戶信息,只能調(diào)用用戶服務(wù)的Restful接口,不能查詢用戶數(shù)據(jù)庫

2.3 創(chuàng)建相應(yīng)數(shù)據(jù)庫

因?yàn)椴煌⒎?wù)所使用的數(shù)據(jù)庫不一樣,所以這里為了演示效果分別給order-service和user-service項(xiàng)目在一個機(jī)器上創(chuàng)建兩個不同的數(shù)據(jù)庫作為區(qū)分

order-service項(xiàng)目的tb_order表:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?user-service項(xiàng)目的tb_user表:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?2.4 實(shí)現(xiàn)遠(yuǎn)程調(diào)用示例

在order-service服務(wù)中,有一個根據(jù)id查詢訂單的接口:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring?根據(jù)查詢結(jié)果可以看到,返回的Order對象中的user屬性為null;

在user-service中有一個根據(jù)id查詢用戶的接口:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

1, 更改需求

?order-service和user-service都可以根據(jù)id查詢到相應(yīng)的訂單和用戶信息,假設(shè)現(xiàn)在有一個需求是在查詢到訂單的同時返回相應(yīng)的用戶信息.

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?因?yàn)椴煌瑯I(yè)務(wù)模塊之間是相互獨(dú)立的,在order-service中查詢相應(yīng)訂單的用戶信息就需要在order-service模塊下向user-service模塊下發(fā)送一次http請求調(diào)用http://localhost:8081/user/{userId}這個接口獲取到用戶信息后再進(jìn)行封裝返回.

大概得步驟是這樣的:

  1. 注冊一個RestTemplate的實(shí)例到Spring容器
  2. 修改order-service服務(wù)中的OrderService類中的queryOrderById方法,根據(jù)Order對象中的userId查詢User
  3. 將查詢的User填充到Order對象中一起返回

2, 注冊RestTemplate實(shí)現(xiàn)遠(yuǎn)程調(diào)用

1.我們在order-service服務(wù)中的OrderApplication啟動類中,注冊RestTemplate實(shí)例:

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

2.修改OrderService類中的queryOrderById方法實(shí)現(xiàn)遠(yuǎn)程調(diào)用

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?3.重啟服務(wù)器查看結(jié)果

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?2.5 服務(wù)消費(fèi)者和提供者

在服務(wù)調(diào)用關(guān)系中,會有兩個不同的角色:

  • 服務(wù)提供者:一次業(yè)務(wù)中,被其他微服務(wù)調(diào)用的服務(wù)(提供接口給其他微服務(wù))
  • 服務(wù)消費(fèi)者:一次業(yè)務(wù)中,調(diào)用其他微服務(wù)的服務(wù)(調(diào)用其他微服務(wù)提供的接口)

SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用,SpringCloud微服務(wù),spring cloud,架構(gòu),spring

?但是,服務(wù)提供者與服務(wù)消費(fèi)者的角色并不是絕對的,而是相對于業(yè)務(wù)而言,如果服務(wù)A調(diào)用了服務(wù)B,而服務(wù)B又調(diào)用了服務(wù)A,服務(wù)B既是服務(wù)提供者也是服務(wù)消費(fèi)者.文章來源地址http://www.zghlxwxcb.cn/news/detail-719959.html

到了這里,關(guān)于SpringCloud(一) 服務(wù)架構(gòu)的演變及注冊RestTemplate實(shí)現(xiàn)服務(wù)的遠(yuǎn)程調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【微服務(wù)開篇-RestTemplate服務(wù)調(diào)用、Eureka注冊中心、Nacos注冊中心】

    【微服務(wù)開篇-RestTemplate服務(wù)調(diào)用、Eureka注冊中心、Nacos注冊中心】

    ?本篇用到的資料: https://gitee.com/Allengan/cloud-demo.git https://gitee.com/Allengan/cloud-demo.git 目錄 1.認(rèn)識微服務(wù) 1.1.單體架構(gòu) 1.2.分布式架構(gòu) 1.3.微服務(wù) 1.4.SpringCloud 1.5.總結(jié) 2.服務(wù)拆分和遠(yuǎn)程調(diào)用 2.1.服務(wù)拆分原則 2.2.服務(wù)拆分示例 2.2.1.導(dǎo)入Sql語句 2.2.2.導(dǎo)入demo工程 2.3.實(shí)現(xiàn)遠(yuǎn)程調(diào)用案例

    2024年02月08日
    瀏覽(27)
  • Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    ??作者簡介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計劃導(dǎo)師?、博客專家?? , 專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。 ??本文收錄于 Java基礎(chǔ)教程系列(進(jìn)階篇) ,本專欄是針對大學(xué)生、初級Java工程師精心打造, 針對Java生態(tài),逐個擊破,

    2024年02月02日
    瀏覽(1681)
  • 微服務(wù)—遠(yuǎn)程調(diào)用(RestTemplate)

    微服務(wù)—遠(yuǎn)程調(diào)用(RestTemplate)

    ? ? ? ? ? 在微服務(wù)的所有框架中,SpringCloud脫穎而出,它是目前國內(nèi)使用的最廣泛的微服務(wù)框架? ?(官網(wǎng)地址),它集成了各種微服務(wù)功能組件,并基于SpringBoot實(shí)現(xiàn)了這些組件的自動裝配,從而提供了良好的開箱即用的體驗(yàn) 服務(wù)拆分注意事項(xiàng): 單一職責(zé):不同的微服務(wù),

    2024年02月12日
    瀏覽(18)
  • 微服務(wù)之架構(gòu)演變

    微服務(wù)之架構(gòu)演變

    隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用規(guī)模不斷擴(kuò)大,網(wǎng)站架構(gòu)隨之不斷演變,演變歷史大致分為單體應(yīng)用架構(gòu)-垂直應(yīng)用架構(gòu)-分布式架構(gòu)-SOA架構(gòu)-微服務(wù)架構(gòu)-云原生架構(gòu) 以前網(wǎng)站流量小,只需要一個應(yīng)用就可以把所有功能部署在一起,比如一個電商系統(tǒng),包含很多模塊,我們部署到

    2024年02月10日
    瀏覽(22)
  • 微服務(wù)架構(gòu)演變

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

    單體架構(gòu):將業(yè)務(wù)的所有功能集中在一個項(xiàng)目種開發(fā),打成一個包部署 優(yōu)點(diǎn): 架構(gòu)簡單 部署成本低 缺點(diǎn): 耦合度高 分布式架構(gòu):根據(jù)業(yè)務(wù)功能對系統(tǒng)進(jìn)行拆分,每個業(yè)務(wù)模塊作為獨(dú)立項(xiàng)目開發(fā),稱為一個服務(wù) 優(yōu)點(diǎn): 降低服務(wù)耦合 有利于服務(wù)升級拓展 需要考慮的問題:

    2024年02月03日
    瀏覽(21)
  • SpringCloud入門——微服務(wù)調(diào)用的方式 & RestTemplate的使用 & 使用nacos的服務(wù)名初步(Ribbon負(fù)載均衡)

    SpringCloud入門——微服務(wù)調(diào)用的方式 & RestTemplate的使用 & 使用nacos的服務(wù)名初步(Ribbon負(fù)載均衡)

    1.微服務(wù)調(diào)用的幾種方式,異步消息傳遞,http調(diào)用,服務(wù)網(wǎng)關(guān)調(diào)用,服務(wù)發(fā)現(xiàn)調(diào)用nacos; 2.spring提供的restTemplate,發(fā)送HTTP請求的客戶端工具類; 3.nacos使用服務(wù)名報錯,需要加Ribbon負(fù)載均衡; RPC (Remote Procedure Call)遠(yuǎn)程過程調(diào)用協(xié)議,一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機(jī)上請求服務(wù),

    2024年02月10日
    瀏覽(19)
  • 【Spring Cloud】微服務(wù)架構(gòu)演變及微服務(wù)架構(gòu)介紹

    【Spring Cloud】微服務(wù)架構(gòu)演變及微服務(wù)架構(gòu)介紹

    歡迎來到阿Q社區(qū) https://bbs.csdn.net/topics/617897123 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模也在不斷的擴(kuò)大,進(jìn)而導(dǎo)致系統(tǒng)架構(gòu)也在不斷的進(jìn)行變化。從互聯(lián)網(wǎng)早期到現(xiàn)在,系統(tǒng)架構(gòu)大體經(jīng)歷了下面幾個過程:單體應(yīng)用架構(gòu)—垂直應(yīng)用架構(gòu)—分布式架構(gòu)—SOA架構(gòu)—微服務(wù)架構(gòu),當(dāng)然還

    2024年02月02日
    瀏覽(82)
  • springcloud 中RestTemplate 是怎么和 ribbon整合,實(shí)現(xiàn)負(fù)載均衡的?源碼分析

    springcloud 中RestTemplate 是怎么和 ribbon整合,實(shí)現(xiàn)負(fù)載均衡的?源碼分析

    RestTemplate 內(nèi)置了一個 ClientHttpRequestInterceptor ,這個是一個攔截器操作,我們可以在請求的前后做一些事情。然后我們看一下這個類,這個類里面 有一個 intercept 方法。我們看下這個實(shí)現(xiàn)類,里面有一個 LoadBalancerInterceptor 實(shí)現(xiàn)類。 我們來看 LoadBalancerInterceptor 實(shí)現(xiàn)類。 然后我

    2024年02月09日
    瀏覽(21)
  • 【架構(gòu)設(shè)計】單體軟件向微服務(wù)化演變

    假設(shè)單體軟件的各模塊如下,其中服務(wù)包含許多功能模塊,如用戶管理模塊、商品模塊、訂單模塊、倉庫模塊; 服務(wù)化是指對單體服務(wù)進(jìn)行拆分,將一個服務(wù)軟件拆分為多個相互關(guān)聯(lián)的服務(wù),他們之間相互協(xié)作,能正常完成原單體服務(wù)的所有業(yè)務(wù)。 服務(wù)化后,有如下優(yōu)點(diǎn):

    2024年01月17日
    瀏覽(20)
  • 系統(tǒng)架構(gòu)的演變:從單體到微服務(wù)的旅程

    系統(tǒng)架構(gòu)的演變:從單體到微服務(wù)的旅程

    隨著信息技術(shù)的快速發(fā)展,系統(tǒng)架構(gòu)也在不斷演變。從早期的單體架構(gòu)到現(xiàn)代的微服務(wù)架構(gòu),每一次的變革都帶來了更高的靈活性和可擴(kuò)展性。本文將通過圖解和代碼示例,詳細(xì)介紹系統(tǒng)架構(gòu)的演變過程,并探討微服務(wù)架構(gòu)的優(yōu)勢和適用性。 單體架構(gòu)是最早的系統(tǒng)架構(gòu)之一,

    2024年01月18日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包