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

SpringCloud微服務(wù)注冊(cè)中心:Nacos介紹,微服務(wù)注冊(cè),Ribbon通信,Ribbon負(fù)載均衡,Nacos配置管理詳細(xì)介紹

這篇具有很好參考價(jià)值的文章主要介紹了SpringCloud微服務(wù)注冊(cè)中心:Nacos介紹,微服務(wù)注冊(cè),Ribbon通信,Ribbon負(fù)載均衡,Nacos配置管理詳細(xì)介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

微服務(wù)注冊(cè)中心

注冊(cè)中心可以說(shuō)是微服務(wù)架構(gòu)中的”通訊錄“,它記錄了服務(wù)和服務(wù)地址的映射關(guān)系。在分布式架構(gòu)中,服務(wù)會(huì)注冊(cè)到這里,當(dāng)服務(wù)需要調(diào)用其它服務(wù)時(shí),就這里找到服務(wù)的地址,進(jìn)行調(diào)用。

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

微服務(wù)注冊(cè)中心

服務(wù)注冊(cè)中心(簡(jiǎn)稱注冊(cè)中心)是微服務(wù)框架的一個(gè)重要組件,在微服務(wù)架構(gòu)里主要起到了協(xié)調(diào)者的一個(gè)作用,注冊(cè)中心一般包括如下幾個(gè)功能:

  1. 注冊(cè)發(fā)現(xiàn):
    • 服務(wù)注冊(cè)/反注冊(cè):保證服務(wù)提供者和服務(wù)調(diào)用者的信息
    • 服務(wù)訂閱/取消訂閱:服務(wù)調(diào)用者訂閱服務(wù)提供者的信息,最好有實(shí)時(shí)推送的功能
    • 服務(wù)路由(可選):具有篩選整合服務(wù)提供者的能力
  2. 服務(wù)配置:
    • 配置訂閱:服務(wù)提供者和服務(wù)調(diào)用者訂閱微服務(wù)相關(guān)的配置
    • 配置下發(fā):主動(dòng)將配置托送給服務(wù)提供者和服務(wù)調(diào)用者
  3. 服務(wù)監(jiān)控檢測(cè):
    • 檢測(cè)服務(wù)提供者的健康情況

常見(jiàn)的注冊(cè)中心

  • Zookeeper

    zookeeper它是一個(gè)分布式服務(wù)框架,是Apache Hadoop 的一個(gè)子項(xiàng)目,它主要是用來(lái)解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。簡(jiǎn)單來(lái)說(shuō)zookeeper=文件系統(tǒng)+監(jiān)聽(tīng)通知機(jī)制

  • Eureka

    Eureka是Java語(yǔ)言上,基于Restful Api開(kāi)發(fā)的服務(wù)注冊(cè)與發(fā)現(xiàn)組件,SpringCloud Netflix 中的重要組件

  • Consul

    Consul是由HashiCorp基于Go語(yǔ)言開(kāi)發(fā)的支持多數(shù)據(jù)中心分布式高可用的服務(wù)發(fā)布和注冊(cè)服務(wù)軟件,采用Raft算法保證服務(wù)的一致性,并且支持健康檢查

  • Nacos

    Nacos是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn),配置管理和服務(wù)平臺(tái),簡(jiǎn)單來(lái)說(shuō)Nacos就是注冊(cè)中心+配置中心的組合,提供簡(jiǎn)單易用的特征集,幫助我們解決微服務(wù)開(kāi)發(fā)必會(huì)涉及到的服務(wù)注冊(cè)與發(fā)現(xiàn),服務(wù)配置,服務(wù)管理等問(wèn)題。Nacos還是Spring Cloud Alibaba 組件之一,負(fù)責(zé)服務(wù)注冊(cè)與發(fā)現(xiàn)

組件名 語(yǔ)言 CAP 一致性算法 服務(wù)健康檢查 對(duì)外暴露接口
Eureka Java AP 無(wú) 可配支持 HTTP
Consul Go CP Raft 支持 HTTP/DNS
Zookeeper Java CP Paxos 支持 客戶端
Nacos Java AP Raft 支持 HTTP

Eureka閉源影響:

在Eureka的GitHub上,宣布Eureka 2.x閉源。意味著如果開(kāi)發(fā)者繼續(xù)使用作為2.x分支上現(xiàn)有的工作時(shí),自負(fù)風(fēng)險(xiǎn)

Nacos簡(jiǎn)介

Nacos致力于幫助您發(fā)現(xiàn),配置和管理微服務(wù)。Nacos提供了一組簡(jiǎn)單易用的特征集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn),服務(wù)配置,服務(wù)元數(shù)據(jù)及流量管理。Nacos的作用就是一個(gè)注冊(cè)中心,用來(lái)管理注冊(cè)上來(lái)的各個(gè)微服務(wù)

  • Nacos下載地址

    https://github.com/alibaba/nacos/releases,下載zip格式的安裝包,解壓安裝

  • Nacos的啟動(dòng)

    命令啟動(dòng):

    # 切換目錄
    cd nacos/bin
    # 命令啟動(dòng)
    startup.cmd -m standalone
    

    雙擊啟動(dòng)startup.cmd 運(yùn)行

    Nacos啟動(dòng)瀏覽器訪問(wèn)http://localhost:8848/nacos即可訪問(wèn)服務(wù),默認(rèn)的賬號(hào)密碼是nacos/nacos

項(xiàng)目中搭建Nacos

基于原來(lái)的項(xiàng)目搭建Nacos

  • 將shop_product商品微服務(wù)注冊(cè)到Nacos

實(shí)現(xiàn)步驟:

  1. pom文件中添加Nacos依賴

    <!--nacos客戶端-->
    <!--服務(wù)注冊(cè)-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  2. 在啟動(dòng)類上添加@EnableDiscoveryClient注解

    @SpringBootApplication
    @EnableDiscoveryClient
    public class ShopOrderApplication {
        public static void main(String[] args) {       SpringApplication.run(ShopOrderApplication.class, args);
        }
    }
    
  3. 在application.yaml中添加Nacos服務(wù)的地址

    server:
      port: 8081
    spring:
      application:
        name: service-product   # 注冊(cè)到服務(wù)中心中的名字
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
        username: root
        password: 123456
      # 配置nacos
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
            #server-addr: nacos服務(wù)地址:端口號(hào)
    
  4. 啟動(dòng)服務(wù),觀察Nacos的控制面板中是否有注冊(cè)上來(lái)的商品微服務(wù)

    修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

    刷新nacos,能看到注冊(cè)的微服務(wù)即注冊(cè)成功

  • 將shop_order訂單微服務(wù)注冊(cè)到Nacos

實(shí)現(xiàn)步驟:

  1. 在pom文件添加nacos的依賴

    <!--nacos客戶端-->
    <!--服務(wù)注冊(cè)-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  2. 在啟動(dòng)類上添加@EnableDiscoveryClient注解

    @SpringBootApplication
    @EnableDiscoveryClient
    public class ShopOrderApplication {
        public static void main(String[] args) {       SpringApplication.run(ShopOrderApplication.class, args);
        }
    }
    
  3. 在application.yaml中添加nacos服務(wù)的地址

    server:
      port: 8091
    spring:
    	application:
        name: service-order   # 注冊(cè)到服務(wù)中心中的名字
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
        username: root
        password: 123456
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
    
  4. 啟動(dòng)服務(wù),觀察nacos的控制面板中是否有注冊(cè)上來(lái)的訂單微服務(wù),同shop_product

服務(wù)調(diào)用Ribbon入門

經(jīng)過(guò)以上的學(xué)習(xí),已經(jīng)實(shí)現(xiàn)了服務(wù)的注冊(cè)和服務(wù)發(fā)現(xiàn)。當(dāng)啟動(dòng)某個(gè)服務(wù)的時(shí)候,可以通過(guò)HTTP的形式將信息注冊(cè)到注冊(cè)中心,并且可以通過(guò)SpringCloud提供的工具獲取注冊(cè)中心的服務(wù)列表。但是服務(wù)之間的調(diào)用還存在很多的問(wèn)題,如何更加方便的調(diào)用微服務(wù),多個(gè)微服務(wù)的提供者如何選擇,如何負(fù)載均衡等

Ribbon的概述

是Netflixfa 發(fā)布的一個(gè)負(fù)載均衡器,有助于控制 HTTP 和 TCP客戶端行為。在 SpringCloud 中,Nacos一般配合Ribbon進(jìn)行使用,Ribbon提供了客戶端負(fù)載均衡的功能,Ribbon利用從Nacos中讀取到的服務(wù)信息,在調(diào)用服務(wù)節(jié)點(diǎn)提供的服務(wù)時(shí),會(huì)合理的進(jìn)行負(fù)載。
在SpringCloud中可以將注冊(cè)中心和Ribbon配合使用,Ribbon自動(dòng)的從注冊(cè)中心中獲取服務(wù)提供者的列表信息,并基于內(nèi)置的負(fù)載均衡算法,請(qǐng)求服務(wù)

Ribbon的主要作用

  1. 服務(wù)調(diào)用

    基于Ribbon實(shí)現(xiàn)服務(wù)調(diào)用,是通過(guò)拉取到的所有服務(wù)列表組成(服務(wù)名-請(qǐng)求路徑的)映射關(guān)系。借助RestTemplate最終進(jìn)行調(diào)用

  2. 負(fù)載均衡

    當(dāng)有多個(gè)服務(wù)提供者時(shí),Ribbon可以根據(jù)負(fù)載均衡的算法自動(dòng)的選擇需要調(diào)用的服務(wù)地址

基于Ribbon實(shí)現(xiàn)服務(wù)調(diào)用

需求:基于Ribbon實(shí)現(xiàn)訂單調(diào)用商品的服務(wù)

實(shí)現(xiàn)步驟:

  1. 坐標(biāo)依賴

    在springcloud提供的服務(wù)發(fā)現(xiàn)的jar中已經(jīng)包含了Ribbon的依賴。所以在這不需要子啊導(dǎo)入任何額外的坐標(biāo)

  2. 工程改造

    服務(wù)消費(fèi)者(服務(wù)的調(diào)用者)

    在注入RestTemplate的方法上添加注解==@LoadBalanced==注解

    @Configuration
    public class RestTemplateConfig {
        @Bean
        @LoadBalanced
        public RestTemplate getRestTemplate(){
            return new RestTemplate();
        }
    }
    

    通過(guò)服務(wù)名稱消費(fèi)使用

    @RestController
    @RequestMapping("/order")
    public class OrderController {
        @Autowired(required = false)
        private IOrderService orderService;
    
        @Autowired(required = false)
        private RestTemplate restTemplate;
    
        // 模擬下訂單業(yè)務(wù)
        @RequestMapping("/save/{pid}")
        public Order order (@PathVariable("pid") int pid) {
            // 調(diào)用商品的微服務(wù)
            String url = "service-product";
            Product product = restTemplate.getForObject("http://"+ url +"/product/" + pid, Product.class);
    
            // 創(chuàng)建訂單
            Order order = new Order();
            order.setUid(1);
            order.setUsername("測(cè)試用戶");
            order.setPid(pid);
            order.setPname(product.getPname());
            order.setPprice(product.getPprice());
            order.setNumber(1);
            orderService.save(order);
            return order;
        }
    }
    

    注意:restTemplate.getForObject(“http://商品服務(wù)名稱/product/1”+pid,Product.class)

    這里的商品服務(wù)名稱是:注冊(cè)商品服務(wù)時(shí)的名稱,即shop_product的yaml配置文件中的application.name

    路徑是根據(jù)shop_product中通過(guò)id查詢商品的路徑編寫

服務(wù)調(diào)用Ribbon高級(jí)

負(fù)載均衡概述

在搭建網(wǎng)對(duì)時(shí),如果單節(jié)點(diǎn)的 web服務(wù)性能和可靠性都法達(dá)到要求;或者是在使用外網(wǎng)服務(wù)時(shí),經(jīng)常擔(dān)心被人攻破,一不小就會(huì)有打開(kāi)外網(wǎng)端口的情況,通常這時(shí)加人負(fù)載有就能有效
決服務(wù)問(wèn)題。
負(fù)載均衡是一種基礎(chǔ)的網(wǎng)絡(luò)服務(wù),其原理是通過(guò)運(yùn)行在前面的負(fù)載均衡服務(wù),按照指定的負(fù)載均衡算法,將流量分雷到后端服務(wù)集群上,從而為系統(tǒng)提供并行擴(kuò)展的能力。
負(fù)載均衡的應(yīng)用場(chǎng)景包括流量包、轉(zhuǎn)發(fā)規(guī)則以及后端服務(wù),由于該服務(wù)有內(nèi)外網(wǎng)隔離,健康檢查功能,能夠有效提供系統(tǒng)的安全性和可用性。

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

負(fù)載均衡分類

  1. 客戶端負(fù)載均衡

    先發(fā)送請(qǐng)求到負(fù)載均衡服務(wù)器或者軟件,然后通過(guò)負(fù)載均衡算法,在多個(gè)服務(wù)器之間選擇一個(gè)進(jìn)行訪問(wèn);即在服務(wù)器端再進(jìn)行負(fù)載均衡算法分配

  2. 服務(wù)端負(fù)載均衡

    客戶端會(huì)有一個(gè)服務(wù)器地址列表,在發(fā)送請(qǐng)求前通過(guò)負(fù)載均衡算法選擇一個(gè)服務(wù)器,然后進(jìn)行訪問(wèn),這是客戶端負(fù)載均衡,即在客戶端就進(jìn)行負(fù)載均衡算法分配

基于Ribbon實(shí)現(xiàn)負(fù)載均衡

需求:實(shí)現(xiàn)訂單和商品之間的客戶端負(fù)載均衡

實(shí)現(xiàn)步驟:

  1. 先搭建多服務(wù)實(shí)例(即水平拓展)

    訂單服務(wù)需要調(diào)商品服務(wù),所以需要再啟動(dòng)一個(gè)shop-product微服務(wù),設(shè)置端口號(hào)為8082

    修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  2. 啟動(dòng)兩個(gè)shop_product和shop_order

    發(fā)送多次請(qǐng)求,可以在調(diào)用的product服務(wù)中打印內(nèi)容,查看控制臺(tái)打印內(nèi)容,Ribbon默認(rèn)的負(fù)載均衡策略是輪詢的方式

負(fù)載均衡的策略

Ribbion內(nèi)置了多種負(fù)載均衡策略,內(nèi)部負(fù)責(zé)負(fù)載均衡的頂級(jí)接口為com.netflix.loadbalancer.IRule

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  • com.netflix.loadbalancer.RoundRobinRule:以輪詢的方式進(jìn)行負(fù)載均衡
  • com.netflix.loadbalancer.RandomRule:隨機(jī)策略
  • com.netflix.loadbalancer.RetryRule:重試策略
  • com.netflix.loadbalancer.WeightedResponseTimeRule:權(quán)重策略。會(huì)計(jì)算每個(gè)服務(wù)的權(quán)重,越高的被調(diào)用的可能性越大
  • com.netflix.loadbalancer.BestAvailableRule:最佳策略。遍歷所有的服務(wù)實(shí)例,過(guò)濾掉故障實(shí)例,并返回請(qǐng)求數(shù)最小的實(shí)力返回
  • com.netflix.loadbalancer.AvailabilityFilteringRule:可用過(guò)濾策略。過(guò)濾掉故障和請(qǐng)求次數(shù)超過(guò)閾值的服務(wù)實(shí)例,再?gòu)氖O碌膶?shí)例中輪詢調(diào)用
  • ZoneAvoidanceRule:以區(qū)域可用的服務(wù)器為基礎(chǔ)進(jìn)行服務(wù)器的選擇。使用Zone對(duì)服務(wù)器進(jìn)行分類,這個(gè)Zone可以理解為一個(gè)機(jī)房,一個(gè)機(jī)架等,而后再對(duì)Zone內(nèi)的多個(gè)服務(wù)做輪詢

自定義指定負(fù)載均衡策略

方式一,全局設(shè)置

定義一個(gè)新的IRule:

@Bean
public IRule randomRule(){
    return new RandomRule();  // 隨機(jī)策略
}

方式二,局部設(shè)置

在yaml配置文件中配置:

在shop_order(客戶端配置文件中)的yaml文件中配置被調(diào)用的服務(wù),需要調(diào)用的服務(wù)器名稱和策略

server:
  port: 8091
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: 123456
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
# 配置隨機(jī)策略
# 需要調(diào)用的服務(wù)器名稱
service-product:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    # 隨機(jī)策略完全路徑

Nacos配置管理

Nacos除了可做注冊(cè)中心,同樣可以做配置管理來(lái)使用

統(tǒng)一配置管理

當(dāng)微服務(wù)部署的實(shí)例越來(lái)越多,達(dá)到數(shù)十、數(shù)百時(shí),逐個(gè)修改微服務(wù)配置就會(huì)讓人抓狂,而且很容易出錯(cuò)我們需要一種統(tǒng)一配置管理方案,可以集中管理所有實(shí)例的配置。

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

Nacos一方面可以將配置集中管理,另一方面可以在配置變更時(shí),即使通知微服務(wù),實(shí)現(xiàn)配置的熱更新

在業(yè)界中常見(jiàn)的服務(wù)配置中心如下:

  • **Apollo:**由攜程開(kāi)源的分布式配置中心。特點(diǎn)很多:配置更新之后可以實(shí)時(shí)生效,支持灰度發(fā)布功能,并且能對(duì)所有的配置進(jìn)行版本管理、操作審計(jì)等功能,提供開(kāi)放平臺(tái)API。并且
    料也寫的很詳細(xì)
  • **Disconf:**由百度開(kāi)源的分布式配置中心。它是基于Zookeeper來(lái)實(shí)現(xiàn)配置變更后實(shí)時(shí)通知和生效的
  • **SpringCloud Config:**Spring Cloud中帶的配置中心組件。它和Spring是無(wú)縫集成,使用起來(lái)非常方便,并且它的配置存儲(chǔ)支持Git,不過(guò)它沒(méi)有可視化的操作界面,配置的生效也不是實(shí)時(shí)的,需要重啟或去刷新
  • **Nacos:**SpringCloud alibaba技術(shù)棧中的一個(gè)組件,前面我們已經(jīng)使用它做過(guò)服務(wù)注冊(cè)中心。其實(shí)它也繼承了服務(wù)配置的功能,我們可以直接使用它作為服務(wù)配置中心

在nacos中添加配置文件

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

nacos配置中心新建配置起名規(guī)范:

服務(wù)名稱-環(huán)境簡(jiǎn)稱.文件后綴:shop_order-dev.yaml

從微服務(wù)拉取配置

微服務(wù)要拉取nacos中管理的配置,并且與本地的application.yaml配置合并,才能完成項(xiàng)目啟動(dòng)

spring引入了一種新的配置文件:boostrap.yaml文件,會(huì)在application.yaml之前被讀取,流程:

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

配置實(shí)現(xiàn)步驟

  1. 引入nacos-config依賴

    <!--統(tǒng)一配置-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
  2. 添加bootstrap.yaml

    不能使用原來(lái)的application.yaml作為配置問(wèn)價(jià)你,新建一個(gè)bootstrap.yaml作為配置文件

    server:
      port: 8091
    spring:
      application:
        name: service-order
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848  #nacos 中心地址
            file-extension: yaml # 配置文件格式
      profiles:
        active: dev  #環(huán)境表示,開(kāi)發(fā)環(huán)境
    

    配置文件優(yōu)先級(jí)(由高到低):

    bootstrap.properties–>bootstrap.yaml–>application.properties–>application.yaml

  3. 在nacos中添加配置:service-order-dev

    修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  4. 測(cè)試:

    模擬下單業(yè)務(wù),正常下單即成功

配置熱更新

最終目的是修改nacos中的配置后,微服務(wù)中無(wú)需重啟即可讓配置文件生效,也就是配置熱更新。實(shí)現(xiàn)熱更新兩種方式:

在配置中心添加配置(隨便起的鍵值對(duì)為了看效果)

config:
	env: test 
  • 方式一

    只需要在需要?jiǎng)討B(tài)讀取配置的類上添加==@RefreshScope==注解就可以

    @RestController
    @RequestMapping("/order")
    @RefreshScope // 動(dòng)態(tài)讀取配置
    public class OrderController {
       @Value("${config.env}")
      private String appName;
      
      @GetMapping("/nacos-config-test")
      public String nacosConfigTest(){
        return appName;
      }
    }
    
  • 方式二

    硬編碼方式

    @Value(("${config.env}"))
    private String env;
    @Autowired
    private ConfigurableApplicationContext applicationContext;
    
    @GetMapping("nacos-config-test2")
    public String nacosConfigTest2(){
      return applicationContext.getEnvironment().getProperty("config.env");
    }
    

當(dāng)在配置中心中修改了config.env鍵值對(duì),服務(wù)不需要重新啟動(dòng),即可拿到修改后的值

配置共享

配置共享即抽取相同的配置

同服務(wù)內(nèi)配置共享

實(shí)現(xiàn)步驟:

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  1. 新建一個(gè)以service-order命名的配置文件,然后將其所有環(huán)境的公共配置放在里面

    修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  2. 新建一個(gè)名為service-order-test.yaml配置存放測(cè)試環(huán)境的配置

  3. 新建一個(gè)名為service-order-dev.yaml配置存放開(kāi)發(fā)環(huán)境的配置

  4. 在兩個(gè)環(huán)境文件中配置獨(dú)有信息

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon

  1. 添加測(cè)試方法

    修改bootstrap.yaml中的環(huán)境看字符串打印的內(nèi)容

    profiles:
        active: dev  #環(huán)境表示,開(kāi)發(fā)環(huán)境
        #active:test
    
    @Value(("${config.env}"))
    private String env;
    
    @GetMapping("/nacos-config-test3")
    public String nacosConfigTest3(){
        return env;
    }
    

不同微服務(wù)共享配置

不同服務(wù)之間實(shí)現(xiàn)配置共享的原理類似于文件引入,就是定義一個(gè)公共配置,然后在當(dāng)前配置中引入

  1. 在nacos中定義一個(gè)DataID為all-service.yaml(隨便起)的配置,用于所有微服務(wù)共享

    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
        username: root
        password: 123456
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
    
  2. 修改bootstrap.yaml

    server:
      port: 8091
    spring:
      application:
        name: service-order
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848  #nacos 中心地址
            file-extension: yaml # 配置文件格式
            shared-dataids: all-service.yaml  #配置要引入的配置
            refreshable-dataids: all-service.yaml # 配置要實(shí)現(xiàn)動(dòng)態(tài)配置刷新的配置
      profiles:
        active: dev  #環(huán)境表示,開(kāi)發(fā)環(huán)境
    
  3. 啟動(dòng)商品微服務(wù)測(cè)試

配置共享的優(yōu)先級(jí)

當(dāng)nacos、服務(wù)本地同時(shí)出現(xiàn)相同屬性時(shí),優(yōu)先級(jí)有高低之分:

修改nacos driver,SpringCloud,spring cloud,微服務(wù),ribbon文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-835345.html

到了這里,關(guān)于SpringCloud微服務(wù)注冊(cè)中心:Nacos介紹,微服務(wù)注冊(cè),Ribbon通信,Ribbon負(fù)載均衡,Nacos配置管理詳細(xì)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • SpringCloud微服務(wù) 【實(shí)用篇】| Eureka注冊(cè)中心、Ribbon負(fù)載均衡

    SpringCloud微服務(wù) 【實(shí)用篇】| Eureka注冊(cè)中心、Ribbon負(fù)載均衡

    目錄 一:Eureka注冊(cè)中心 1. Eureka原理 2. 動(dòng)手實(shí)踐 ①搭建EurekaServer ②服務(wù)注冊(cè) ③服務(wù)發(fā)現(xiàn)? 二:Ribbon負(fù)載均衡 1. 負(fù)載均衡原理 2.?負(fù)載均衡策略 3. 懶加載 tips:前些天突然發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家,感興趣的同學(xué)可以

    2024年02月05日
    瀏覽(21)
  • 【SpringCloud】一、微服務(wù)概述、注冊(cè)中心與Ribbon負(fù)載均衡技術(shù)簡(jiǎn)介

    微服務(wù)治理 異步通信技術(shù) — mq 緩存技術(shù) — Redis 搜索技術(shù) — ES集群 Devops — Jenkins… 微服務(wù)是一種將各個(gè)模塊拆分開(kāi)獨(dú)立運(yùn)行以提高系統(tǒng)整體效率的技術(shù),其主要特征為: 單一職責(zé):每個(gè)服務(wù)對(duì)應(yīng)唯一的業(yè)務(wù)能力、做到單一職責(zé)。 面向服務(wù):對(duì)外要暴露微服務(wù)的業(yè)務(wù)接口

    2024年02月09日
    瀏覽(19)
  • 【微服務(wù)技術(shù)一】Eureka、Nacos、Ribbon(配置管理、注冊(cè)中心、負(fù)載均衡)

    【微服務(wù)技術(shù)一】Eureka、Nacos、Ribbon(配置管理、注冊(cè)中心、負(fù)載均衡)

    微服務(wù)完整的技術(shù)棧如圖: 技術(shù)棧學(xué)習(xí): 概念: 在Eureka架構(gòu)中,微服務(wù)角色有兩類EurekaServer: 服務(wù)端,注冊(cè)中心 記錄服務(wù)信息 心跳監(jiān)控 EurekaClient:客戶端 Provider:服務(wù)提供者,例如案例中的user-service注冊(cè)自己的信息到EurekaServer;每隔30秒向EurekaServer發(fā)送心跳 consumer:服務(wù)消

    2024年02月12日
    瀏覽(24)
  • 基于SpringCloud的微服務(wù)架構(gòu)學(xué)習(xí)筆記(2)注冊(cè)中心Eureka和負(fù)載均衡Ribbon

    基于SpringCloud的微服務(wù)架構(gòu)學(xué)習(xí)筆記(2)注冊(cè)中心Eureka和負(fù)載均衡Ribbon

    1.7.1 遠(yuǎn)程調(diào)用的問(wèn)題 地址信息獲取 : 服務(wù)消費(fèi)者 如何獲取 服務(wù)提供者 的 地址信息 (不能每次都寫死): URL:http://localhost:8081/user/\\\"+order.getUserId() 多選一 :如果有多個(gè)服務(wù)提供者,消費(fèi)者如何進(jìn)行選擇 監(jiān)測(cè)健康狀態(tài) :消費(fèi)者如何獲知提供者的健康狀態(tài) 1.7.2 eureka原理 地址

    2024年02月13日
    瀏覽(18)
  • 【微服務(wù)】SpringCloud-Nacos注冊(cè)中心

    【微服務(wù)】SpringCloud-Nacos注冊(cè)中心

    ?? 博客主頁(yè): ??@不會(huì)壓彎的小飛俠 ? 歡迎關(guān)注: ?? 點(diǎn)贊 ?? 收藏 ? 留言 ? ? 系列專欄: ??SpringCloud專欄 ? 知足上進(jìn),不負(fù)野心。 ?? 歡迎大佬指正,一起學(xué)習(xí)!一起加油! Nacos是SpringCloudAlibaba的組件,而SpringCloudAlibaba也遵循SpringCloud中定義的服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)

    2024年02月02日
    瀏覽(28)
  • SpringCloud + Gateway(網(wǎng)關(guān)) + Nacos(注冊(cè)中心+配置中心)+ Dubbo(內(nèi)部服務(wù)調(diào)用)

    SpringCloud + Gateway(網(wǎng)關(guān)) + Nacos(注冊(cè)中心+配置中心)+ Dubbo(內(nèi)部服務(wù)調(diào)用)

    Apache Dubbo是一款微服務(wù)開(kāi)發(fā)框架,它提供了 RPC通信 與 微服務(wù)治理 兩大關(guān)鍵能力 1、協(xié)議支持方面 Feign更加優(yōu)雅簡(jiǎn)單。Feign是通過(guò)REST API實(shí)現(xiàn)的遠(yuǎn)程調(diào)用,基于Http傳輸協(xié)議,服務(wù)提供者需要對(duì)外暴露Http接口供消費(fèi)者調(diào)用,服務(wù)粒度是http接口級(jí)的。通過(guò)短連接的方式進(jìn)行通信,

    2024年02月06日
    瀏覽(1436)
  • springcloud五大組件:Eureka:注冊(cè)中心、Zuul:服務(wù)網(wǎng)關(guān)、Ribbon:負(fù)載均衡、Feign:服務(wù)調(diào)用、Hystix:熔斷器

    Eureka是Netflix開(kāi)發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個(gè)基于REST的服務(wù),主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的。 SpringCloud將它集成在其子項(xiàng)目spring-cloud-netflix中,以實(shí)現(xiàn)SpringCloud的服務(wù)發(fā)現(xiàn)功能。 Eureka包含兩個(gè)組件:Eureka Server和Eure

    2024年04月10日
    瀏覽(22)
  • 【SpringCloud入門】-- Nacos快速入門之搭建服務(wù)與注冊(cè)中心

    【SpringCloud入門】-- Nacos快速入門之搭建服務(wù)與注冊(cè)中心

    目錄 前言: ?1.Nacos的下載與安裝 2. 去MySQL建立一個(gè)名為nacos的數(shù)據(jù)庫(kù) 3.介紹配置文件,conf目錄下的 application.properties 4.nacos啟動(dòng) 5. nacos作為注冊(cè)中心的作用 6.建立一個(gè)項(xiàng)目,實(shí)現(xiàn)向命名空間注冊(cè) 前言: 上文我們已經(jīng)簡(jiǎn)單介紹了一下Nacos,現(xiàn)在我們一起來(lái)動(dòng)手搭建一個(gè)Nacos的注

    2024年02月09日
    瀏覽(21)
  • 手寫SpringCloud系列-一分鐘理解微服務(wù)注冊(cè)中心(Nacos)原理。

    手寫SpringCloud系列-一分鐘理解微服務(wù)注冊(cè)中心(Nacos)原理。

    手寫SpringCLoud項(xiàng)目地址,求個(gè)star github:https://github.com/huangjianguo2000/spring-cloud-lightweight gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh 1. 總結(jié)服務(wù)注冊(cè)中心 我們可以理解注冊(cè)中心就是一個(gè)HashMap,服務(wù)注冊(cè)上去,需要用的時(shí)候去拉取,通過(guò)服務(wù)名稱可以找到對(duì)應(yīng)服務(wù)的IP地址和

    2024年02月14日
    瀏覽(19)
  • springcloud微服務(wù)架構(gòu)(eureka、nacos、ribbon、feign、gateway等組件的詳細(xì)介紹和使用)

    springcloud微服務(wù)架構(gòu)(eureka、nacos、ribbon、feign、gateway等組件的詳細(xì)介紹和使用)

    目錄 一、微服務(wù)演變 1、單體架構(gòu)(Monolithic Architecture) 2、分布式架構(gòu) ?3、微服務(wù) 4、 總結(jié) 5、微服務(wù)架構(gòu) 5.1、 微服務(wù)技術(shù)對(duì)比 5.2、企業(yè)需求 二、spring cloud ?springCloud與SpringBoot的版本兼容關(guān)系 1、服務(wù)拆分及遠(yuǎn)程調(diào)用 1.1、服務(wù)拆分 1.1.1、服務(wù)拆分注意事項(xiàng) 1.1.2、項(xiàng)目實(shí)戰(zhàn)

    2024年02月08日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包