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

【SpringBoot】Spring Boot 單體應(yīng)用升級 Spring Cloud 微服務(wù)

這篇具有很好參考價值的文章主要介紹了【SpringBoot】Spring Boot 單體應(yīng)用升級 Spring Cloud 微服務(wù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Spring Cloud 是在 Spring Boot 之上構(gòu)建的一套微服務(wù)生態(tài)體系,包括服務(wù)發(fā)現(xiàn)、配置中心、限流降級、分布式事務(wù)、異步消息等,因此通過增加依賴、注解等簡單的四步即可完成 Spring Boot 應(yīng)用到 Spring Cloud 升級。

Spring Boot 應(yīng)用升級為 Spring Cloud

Cloud Native

以下是應(yīng)用升級 Spring Cloud 的完整步驟。

第一步:添加 Spring Cloud 依賴

首先,為應(yīng)用添加 Spring Cloud 與 Spring Cloud Alibaba 依賴。注意根據(jù)當(dāng)前應(yīng)用 Spring Boot 版本選擇合適的 Spring Cloud 版本,具體參見版本映射表[1]。??????

<properties>    <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>    <spring-cloud.version>2022.0.0</spring-cloud.version></properties><dependencyManagement>    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-dependencies</artifactId>            <version>${spring-cloud.version}</version>            <type>pom</type>            <scope>import</scope>        </dependency>        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-alibaba-dependencies</artifactId>            <version>${spring-cloud-alibaba.version}</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement><dependencies>    <!-- Nacos 服務(wù)發(fā)現(xiàn) -->    <dependency>        <groupId>com.alibaba.cloud</groupId>        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>    </dependency>    <!-- 服務(wù)發(fā)現(xiàn):OpenFeign服務(wù)調(diào)用 -->    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-openfeign</artifactId>    </dependency>  <!-- 服務(wù)發(fā)現(xiàn):OpenFeign服務(wù)調(diào)用 -->    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-loadbalancer</artifactId>    </dependency></dependencies>

以上我們添加了服務(wù)注冊發(fā)現(xiàn)、OpenFeign 等依賴。

第二步:添加配置

在應(yīng)用 application.yml 或者 application.properties 文件中增加以下配置項(xiàng),設(shè)置應(yīng)用名、注冊中心地址。

application.yml:

spring:  application:    #項(xiàng)目名稱必填,在注冊中心唯一    #最好和之前域名規(guī)范、kubernetes service名等保持一致(會作為調(diào)用與負(fù)載均衡依據(jù))    name: service-provider  cloud:     nacos:       discovery: #啟用 spring cloud nacos discovery        server-addr: 127.0.0.1:8848

application.properties:???????

#項(xiàng)目名稱必填,在注冊中心唯一#最好和之前域名規(guī)范、kubernetes service名等保持一致(會作為調(diào)用與負(fù)載均衡依據(jù))spring.application.name=service-provider #啟用 spring cloud nacos discoveryspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

第三步:啟動類增加注解

啟動類增加 EnableDiscoveryClient EnableFeignClients 注解,啟動服務(wù)地址自動注冊與發(fā)現(xiàn)。???????

@SpringBootApplication@EnableDiscoveryClient@EnableFeignClientspublic class ProviderApplication {    public static void main(String[] args) {        SpringApplication.run(ProviderApplication.class, args);    }}

第四步:調(diào)整服務(wù)調(diào)用方式

?? 注意!

1. 為了保證平滑升級,請確保下游應(yīng)用完成 Spring Cloud 改造并在注冊中心注冊服務(wù)后再進(jìn)行調(diào)用方式改造。

2. RestTemplate/FeignClient 默認(rèn)發(fā)起調(diào)用的 hostname (示例中的 service-provider)是對端 Spring Cloud 應(yīng)用名。因此,為了保證盡可能少的改造量,改造過程中設(shè)置的應(yīng)用名 spring.name=service-provider 最好和之前的命名規(guī)范保持一致。比如:

    • 如果之前有自定義域名,則和域名定義保持一致

    • 如果之前用的 Kubernetes Service,則和 Service Name 保持一致

1. RestTemplate 模式

為之前的 RestTemplate Bean 添加 @LoadBlanced 注解,使得 RestTemplate 接入服務(wù)發(fā)現(xiàn)與負(fù)載均衡:??????

@Bean@LoadBalancedpublic RestTemplate restTemplate() {    return new RestTemplate();}

其它原有 RestTemplate 發(fā)起調(diào)用的代碼保持不變,只需調(diào)整 hostname 即可,如下所示。???????

@RestController public class TestController {
    @Autowired    private RestTemplate restTemplate;
    @GetMapping(value = "/echo-rest/{str}")    public String rest(@PathVariable String str) {        return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);    }}

2. FeignClient 模式

使用 @FeignClient 注解將 EchoService 這個接口包裝成一個 FeignClient,屬性 name 對應(yīng)對端應(yīng)用名 spring.name=service-provider。??????

//@FeignClient(name = "service-provider", url="http://service.example.com/") @FeignClient(name = "service-provider")public interface EchoService {    @GetMapping(value = "/echo/{str}")    String echo(@PathVariable("str") String str);}

將 EchoService 作為標(biāo)準(zhǔn) bean 注入,即可對遠(yuǎn)端服務(wù)發(fā)起請求了。???????

@RestController public class TestController {
    @Autowired    private EchoService echoService;
    @GetMapping(value = "/echo-feign/{str}")    public String feign(@PathVariable String str) {        return echoService.echo(str);    }}

3. HtClient、自定義 HTTP 訪問工具等

對于使用 HttpClient 或者自行封裝 http 調(diào)用工具的用戶,建議統(tǒng)一改造為以上 1、2 兩種調(diào)用模式之一。文章來源地址http://www.zghlxwxcb.cn/news/detail-784082.html

到了這里,關(guān)于【SpringBoot】Spring Boot 單體應(yīng)用升級 Spring Cloud 微服務(wù)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 【Spring Cloud】如何確定微服務(wù)項(xiàng)目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

    【Spring Cloud】如何確定微服務(wù)項(xiàng)目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

    本文描述如何確定微服務(wù)項(xiàng)目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。 我們知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本選擇一致性非常重要。在選擇Spring Boot和Spring Cloud版本時,需要考慮到兩者之間的關(guān)系以及項(xiàng)目的具體需求。 首先,Spring Boot和Spring Cloud有密切

    2024年02月08日
    瀏覽(99)
  • Spring Boot 3.x微服務(wù)升級經(jīng)歷

    Spring Boot 3.x微服務(wù)升級經(jīng)歷

    Spring Boot 3.0.0 GA版已經(jīng)發(fā)布,好多人也開始嘗試升級,有人測試升級后,啟動速度確實(shí)快了不少,如下為網(wǎng)絡(luò)截圖,于是我也按捺不住的想嘗試下。 首先就是要把Spring Boot、Spring Cloud 相關(guān)的依賴升一下 Spring Boot:3.0.0 Spring Cloud:2022.0.0-RC2 統(tǒng)一依賴版本管理: 現(xiàn)在還不能下載

    2024年02月02日
    瀏覽(19)
  • Spring boot微服務(wù)分布式框架Rouyi Cloud權(quán)限認(rèn)證

    Spring boot微服務(wù)分布式框架Rouyi Cloud權(quán)限認(rèn)證

    ??作者主頁:青花鎖 ??簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??、Java微服務(wù)架構(gòu)公號作者?? ??簡歷模板、學(xué)習(xí)資料、面試題庫、技術(shù)互助 ??文末獲取聯(lián)系方式 ?? 專欄 描述 Java項(xiàng)目實(shí)戰(zhàn) 介紹Java組件安裝、使用;手寫框架等 Aws服務(wù)器實(shí)戰(zhàn) Aws Linux服務(wù)器上操作nginx、git、JDK、Vue Jav

    2024年04月14日
    瀏覽(17)
  • springboot3.2報Spring Boot [3.2.0] is not compatible with this Spring Cloud release train

    springboot3.2報Spring Boot [3.2.0] is not compatible with this Spring Cloud release train

    這個解決也比較簡單: 1、直接把springcloud升級為2023.0.0-RC1就行了 2、第二種,直接進(jìn)行配置,關(guān)閉檢查,但是微服務(wù)的相關(guān)服務(wù)可能無法使用,需要自行驗(yàn)證 spring.cloud.compatibility-verifier.enabled=false

    2024年02月20日
    瀏覽(17)
  • Java版分布式微服務(wù)云開發(fā)架構(gòu) Spring Cloud+Spring Boot+Mybatis 電子招標(biāo)采購系統(tǒng)功能清單

    Java版分布式微服務(wù)云開發(fā)架構(gòu) Spring Cloud+Spring Boot+Mybatis 電子招標(biāo)采購系統(tǒng)功能清單

    ???一、立項(xiàng)管理 1、招標(biāo)立項(xiàng)申請 功能點(diǎn):招標(biāo)類項(xiàng)目立項(xiàng)申請入口,用戶可以保存為草稿,提交。 2、非招標(biāo)立項(xiàng)申請 功能點(diǎn):非招標(biāo)立項(xiàng)申請入口、用戶可以保存為草稿、提交。 3、采購立項(xiàng)列表 功能點(diǎn):對草稿進(jìn)行編輯,駁回的立項(xiàng)編輯,在途流程查看。 二、項(xiàng)目管

    2024年02月17日
    瀏覽(23)
  • springboot整合spring cloud gateway搭建網(wǎng)關(guān)服務(wù)

    springboot整合spring cloud gateway搭建網(wǎng)關(guān)服務(wù)

    spring cloud netflix zuul、spring cloud gateway是最常見的微服務(wù)網(wǎng)關(guān),通過網(wǎng)關(guān),我們可以在請求到達(dá)后端指定服務(wù)之前/后端服務(wù)處理完業(yè)務(wù)響應(yīng)數(shù)據(jù)之后對響應(yīng)進(jìn)行對請求/響應(yīng)進(jìn)行處理。 比如常見的參數(shù)校驗(yàn)、接口鑒權(quán)等等,在后端服務(wù)的攔截器和過濾器能做的事在網(wǎng)關(guān)都可以做

    2024年02月07日
    瀏覽(25)
  • SkyWalking鏈路追蹤-搭建-spring-boot-cloud-單機(jī)環(huán)境 之《10 分鐘快速搭建 SkyWalking 服務(wù)》

    SkyWalking鏈路追蹤-搭建-spring-boot-cloud-單機(jī)環(huán)境 之《10 分鐘快速搭建 SkyWalking 服務(wù)》

    首先了解一下單機(jī)環(huán)境 第一步,搭建一個 Elasticsearch 服務(wù)。 第二步,下載 SkyWalking 軟件包。 第三步,搭建一個 SkyWalking OAP 服務(wù)。 第四步,啟動一個 Spring Boot 應(yīng)用,并配置 SkyWalking Agent。 第五步,搭建一個 SkyWalking UI 服務(wù)。 準(zhǔn)備工作,準(zhǔn)備一個docker網(wǎng)絡(luò)組,網(wǎng)絡(luò)組的名字為

    2024年02月15日
    瀏覽(26)
  • 二十、微服務(wù)之-Spring Cloud使用、打包、啟動與整合springboot

    二十、微服務(wù)之-Spring Cloud使用、打包、啟動與整合springboot

    根據(jù) Spring Cloud 的官方網(wǎng)站,Spring Cloud 為開發(fā)人員提供了一些快速構(gòu)建分布式系統(tǒng)常見模式的工具(例如 配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、領(lǐng)導(dǎo)選舉、分布式會話、集群狀態(tài) )。 安裝 IntelliJ IDEA:從 JetBrains 官方網(wǎng)站下載適用于您操作系統(tǒng)的 IntelliJ IDEA 版本,并按照

    2024年04月29日
    瀏覽(14)
  • 云原生微服務(wù) Spring Cloud Hystrix 降級、熔斷實(shí)戰(zhàn)應(yīng)用

    云原生微服務(wù) Spring Cloud Hystrix 降級、熔斷實(shí)戰(zhàn)應(yīng)用

    第一章 Java線程池技術(shù)應(yīng)用 第二章 CountDownLatch和Semaphone的應(yīng)用 第三章 Spring Cloud 簡介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 多個微服務(wù)之間調(diào)用的時候,假如微服

    2024年02月08日
    瀏覽(29)
  • (一)Spring Cloud 直擊微服務(wù)作用、架構(gòu)應(yīng)用、hystrix降級

    (一)Spring Cloud 直擊微服務(wù)作用、架構(gòu)應(yīng)用、hystrix降級

    直擊微服務(wù)作用 ?? ?遇到了什么問題? ? ? ? ? 將單體架構(gòu)拆分成微服務(wù)架構(gòu)后,如果保證多個服務(wù)(項(xiàng)目)正常運(yùn)行? ? ? 哪個技術(shù)可以解決這個問題? ? ? ? ? 微服務(wù)技術(shù) ? ? ? ? 服務(wù)治理: 服務(wù)管理,維護(hù)服務(wù)與服務(wù)之間的關(guān)系 ? ? 這個技術(shù)如何使用? ? ? ? ? netflix/網(wǎng)飛:

    2024年02月03日
    瀏覽(115)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包