Lison
<dreamlison@163.com>
, v1.0.0
, 2023.05.10
Spring Cloud Alibaba-02-Nacos Discovery服務(wù)治理及負(fù)載均衡
服務(wù)治理介紹
先來思考一個(gè)問題
通過上一章的操作,我們已經(jīng)可以實(shí)現(xiàn)微服務(wù)之間的調(diào)用。但是我們把服務(wù)提供者的網(wǎng)絡(luò)地址 (ip,端口)等硬編碼到了代碼中,這種做法存在許多問題:
一旦服務(wù)提供者地址變化,就需要手工修改代碼
一旦是多個(gè)服務(wù)提供者,無法實(shí)現(xiàn)負(fù)載均衡功能
一旦服務(wù)變得越來越多,人工維護(hù)調(diào)用關(guān)系困難
那么應(yīng)該怎么解決呢, 這時(shí)候就需要通過注冊中心動(dòng)態(tài)的實(shí)現(xiàn)服務(wù)治理。
什么是服務(wù)治理
服務(wù)治理是微服務(wù)架構(gòu)中最核心最基本的模塊。用于實(shí)現(xiàn)各個(gè)微服務(wù)的自動(dòng)化注冊與發(fā)現(xiàn)。
服務(wù)注冊:在服務(wù)治理框架中,都會構(gòu)建一個(gè)注冊中心,每個(gè)服務(wù)單元向注冊中心登記自己提供服務(wù)的詳細(xì)信息。并在注冊中心形成一張服務(wù)的清單,服務(wù)注冊中心需要以心跳的方式去監(jiān)測清單中的服務(wù)是否可用,如果不可用,需要在服務(wù)清單中剔除不可用的服務(wù)。
服務(wù)發(fā)現(xiàn):服務(wù)調(diào)用方向服務(wù)注冊中心咨詢服務(wù),并獲取所有服務(wù)的實(shí)例清單,實(shí)現(xiàn)對具體服務(wù)實(shí)例的訪問
通過上面的調(diào)用圖會發(fā)現(xiàn),除了微服務(wù),還有一個(gè)組件是服務(wù)注冊中心,它是微服務(wù)架構(gòu)非常重要 的一個(gè)組件,在微服務(wù)架構(gòu)里主要起到了協(xié)調(diào)者的一個(gè)作用。注冊中心一般包含如下幾個(gè)功能:
- 服務(wù)發(fā)現(xiàn):
服務(wù)注冊:保存服務(wù)提供者和服務(wù)調(diào)用者的信息
服務(wù)訂閱:服務(wù)調(diào)用者訂閱服務(wù)提供者的信息,注冊中心向訂閱者推送提供者的信息 - 服務(wù)配置:
配置訂閱:服務(wù)提供者和服務(wù)調(diào)用者訂閱微服務(wù)相關(guān)的配置
配置下發(fā):主動(dòng)將配置推送給服務(wù)提供者和服務(wù)調(diào)用者 - 服務(wù)健康檢測:
檢測服務(wù)提供者的健康情況,如果發(fā)現(xiàn)異常,執(zhí)行服務(wù)剔除
常見的注冊中心
Zookeeper
zookeeper是一個(gè)分布式服務(wù)框架,是Apache Hadoop 的一個(gè)子項(xiàng)目,它主要是用來解決分布式 應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用 配置項(xiàng)的管理等。
Eureka
Eureka是Springcloud Netflix中的重要組件,主要作用就是做服務(wù)注冊和發(fā)現(xiàn)。但是現(xiàn)在已經(jīng)閉 源
Consul
Consul是基于GO語言開發(fā)的開源工具,主要面向分布式,服務(wù)化的系統(tǒng)提供服務(wù)注冊、服務(wù)發(fā)現(xiàn) 和配置管理的功能。Consul的功能都很實(shí)用,其中包括:服務(wù)注冊/發(fā)現(xiàn)、健康檢查、Key/Value 存儲、多數(shù)據(jù)中心和分布式一致性保證等特性。Consul本身只是一個(gè)二進(jìn)制的可執(zhí)行文件,所以 安裝和部署都非常簡單,只需要從官網(wǎng)下載后,在執(zhí)行對應(yīng)的啟動(dòng)腳本即可。
Nacos
Nacos是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。它是 Spring Cloud Alibaba 組件之一,負(fù)責(zé)服務(wù)注冊發(fā)現(xiàn)和服務(wù)配置,可以這樣認(rèn)為nacos=eureka+config。
Nacos介紹
- Nacos是SpringCloudAlibaba架構(gòu)中最重要的組件。
- Nacos 是一個(gè)更易于幫助構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺,提供注冊中心、配置中心和動(dòng)態(tài) DNS 服務(wù)三大功能。能夠無縫對接Springcloud、Spring、Dubbo等流行框架。
- nacos和eureka功能對比
功能模塊 | Nacos | Eureka | 功能說明 |
---|---|---|---|
注冊中心 | √ | √ | 服務(wù)治理,服務(wù)中心化注冊 |
配置中心 | √ | × | eureka需要配合springcloud config實(shí)現(xiàn) |
配置動(dòng)態(tài)刷新 | √ | × | nacos通過netty保持tcp長鏈接進(jìn)行推送,eureka需要配合mq實(shí)現(xiàn)配置動(dòng)態(tài) |
可用區(qū)az | √ | √ | 對服務(wù)集群劃分不同區(qū)域,實(shí)現(xiàn)區(qū)域隔離,并提供災(zāi)難級自動(dòng)切換 |
分組 | √ | × | nacos根據(jù)不同的業(yè)務(wù)、環(huán)境進(jìn)行分組管理(namespace,group |
元數(shù)據(jù) | √ | √ | 提供服務(wù)標(biāo)簽數(shù)據(jù)(環(huán)境、服務(wù)標(biāo)識) |
權(quán)重 | √ | × | nacos提供權(quán)重設(shè)置,調(diào)整承載流量壓力 |
健康檢查 | √ | √ | nacos提供服務(wù)端或者客戶端發(fā)起的健康監(jiān)測,eureka是有客戶端發(fā)起心跳 |
負(fù)載均衡 | √ | √ | 均提供負(fù)載均衡策略,eureka采用ribbon |
- nacos支持a(高可用)p(分區(qū)容錯(cuò))和c(一致性)p的切換默認(rèn)為ap, eureka僅支持ap,zookeeper僅支持c
nacos能做什么?
- 服務(wù)注冊發(fā)現(xiàn)和服務(wù)健康監(jiān)測:Nacos支持基于DNS和基于RPC的服務(wù)發(fā)現(xiàn),服務(wù)端可以通過SDK或者Api進(jìn)行服務(wù)注冊,相應(yīng)的服務(wù)消費(fèi)者可以使用DNS或者Http查找的方式獲取服務(wù)列表。Nacos同時(shí)提供對服務(wù)的實(shí)時(shí)健康檢查,阻止想不健康的主機(jī)或服務(wù)發(fā)送請求,與Eureka類似Nacos也有友好的控制臺界面。
- 動(dòng)態(tài)DNS服務(wù):支持權(quán)重路由,更容易地實(shí)現(xiàn)中間層負(fù)載均衡、更靈活的路由策略、流量控制以及數(shù)據(jù)中心內(nèi)網(wǎng)的簡單DNS解析服務(wù)。
- 動(dòng)態(tài)配置服務(wù):接觸過SpringCloud應(yīng)該對config有所了解,那么配置中心也就很好理解,Nacos支持動(dòng)態(tài)的配置管理,將服務(wù)的配置信息分環(huán)境分類別外部管理,并且支持熱更新。不過與Config不同Nacos的配置信息存儲與數(shù)據(jù)庫中,支持配置信息的監(jiān)聽和版本回滾。
- 服務(wù)及元數(shù)據(jù)管理:Nacos 能讓您從微服務(wù)平臺建設(shè)的視角管理數(shù)據(jù)中心的所有服務(wù)及元數(shù)據(jù),包括管理服務(wù)的描述、生命周期、服務(wù)的靜態(tài)依賴分析、服務(wù)的健康狀態(tài)、服務(wù)的流量管理、路由及安全策略、服務(wù)的 SLA (服務(wù)等級協(xié)議)以及最首要的 metrics 統(tǒng)計(jì)數(shù)據(jù)(默認(rèn)不開啟暴露需要修改配置)??梢源罱ù罱╬rometheus采集Nacos metrics數(shù)據(jù)也可以搭建搭建grafana圖形化展示metrics數(shù)據(jù)
Nacos下載安裝
**官網(wǎng)網(wǎng)址:**https://nacos.io/zh-cn/index.html
官網(wǎng)文檔網(wǎng)址:https://nacos.io/zh-cn/docs/quick-start.html
**注意:**使用官網(wǎng)推薦的穩(wěn)定版本:下載地址:https://github.com/alibaba/nacos/releases
執(zhí)行命令
Linux/Unix/Mac
啟動(dòng)命令(standalone代表著單機(jī)模式運(yùn)行,非集群模式):
sh startup.sh -m standalone
Windows
啟動(dòng)命令(standalone代表著單機(jī)模式運(yùn)行,非集群模式):
startup.cmd -m standalone
執(zhí)行結(jié)果
驗(yàn)證
得到結(jié)果以后為了驗(yàn)證是否成功開啟Nacos,我們需要訪問:http://localhost:8848/nacos
出現(xiàn)此界面表示已經(jīng)成功啟動(dòng)Nacos,默認(rèn)的賬號密碼是:nacos/nacos
引入Nacos Discovery進(jìn)行服務(wù)注冊/發(fā)現(xiàn)
服務(wù)發(fā)現(xiàn)是微服務(wù)架構(gòu)中的關(guān)鍵組件之一。在這樣的架構(gòu)中,手動(dòng)為每個(gè)客戶端配置服務(wù)列表可能是一項(xiàng)艱巨的任務(wù),并且使得動(dòng)態(tài)擴(kuò)展極其困難。Nacos Discovery 幫助您自動(dòng)將您的服務(wù)注冊到 Nacos 服務(wù)器,Nacos 服務(wù)器會跟蹤服務(wù)并動(dòng)態(tài)刷新服務(wù)列表。此外,Nacos Discovery 將服務(wù)實(shí)例的一些元數(shù)據(jù),如主機(jī)、端口、健康檢查 URL、主頁等注冊到 Nacos。
學(xué)習(xí)任何知識我們都需要從它的官方文檔入手,所以我們直接來看官網(wǎng)給我們提供的文檔:https://spring.io/projects/spring-cloud-alibaba#learn
創(chuàng)建新項(xiàng)目
聚合項(xiàng)目:由于聚合帶來的諸多好處,在SpringBoot項(xiàng)目開發(fā)中也廣泛采用,開發(fā)中將SpringBoot項(xiàng)目按照功能分成子模塊開發(fā),所以我們在使用Spring Cloud Alibaba完成項(xiàng)目的時(shí)候,也是采用聚合項(xiàng)目來完成。
父項(xiàng)目pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.13.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lison</groupId>
<artifactId>spring-cloud-alibaba-building</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<java.version>17</java.version>
<lison.project.version>1.0.0-SNAPSHOT</lison.project.version>
<maven.plugin.version>3.8.1</maven.plugin.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud-alibaba-version>2.2.5.RELEASE</spring-cloud-alibaba-version>
</properties>
<modules>
<module>spring-boot-building</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<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>
</project>
子項(xiàng)目pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lison</groupId>
<artifactId>spring-cloud-alibaba-building</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lison</groupId>
<artifactId>spring-boot-building</artifactId>
<version>${lison.project.version}</version>
<name>${project.artifactId}</name>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
子項(xiàng)目yml
server:
port: 18000
spring:
application:
name: spring-boot-building
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
management:
endpoint:
web:
exposure:
include:'*'
啟動(dòng)類
package com.lison.springbootbuilding;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class SpringBootBuildingApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootBuildingApplication.class, args);
}
}
測試
注意,在啟動(dòng)項(xiàng)目前一定要啟動(dòng)Nacos
Nacos服務(wù)消費(fèi)者和負(fù)載均衡
什么是負(fù)載均衡
通俗的講, 負(fù)載均衡就是將負(fù)載(工作任務(wù),訪問請求)進(jìn)行分?jǐn)偟蕉鄠€(gè)操作單元(服務(wù)器,組件)上進(jìn)行執(zhí)行。
根據(jù)負(fù)載均衡發(fā)生位置的不同,一般分為服務(wù)端負(fù)載均衡和客戶端負(fù)載均衡。 服務(wù)端負(fù)載均衡指的是發(fā)生在服務(wù)提供者一方,比如常見的nginx負(fù)載均衡而客戶端負(fù)載均衡指的是發(fā)生在服務(wù)請求的一方,也就是在發(fā)送請求之前已經(jīng)選好了由哪個(gè)實(shí)例處理請求。
我們在微服務(wù)調(diào)用關(guān)系中一般會選擇客戶端負(fù)載均衡,也就是在服務(wù)調(diào)用的一方來決定服務(wù)由哪個(gè)提供者執(zhí)行
負(fù)載均衡
創(chuàng)建一個(gè)spring-cloud-service 服務(wù)
pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lison</groupId>
<artifactId>spring-cloud-alibaba-building</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lison</groupId>
<artifactId>spring-cloud-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-cloud-service</name>
<description>spring-cloud-service</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!--suppress UnresolvedMavenProperty -->
<copy overwrite="true"
tofile="${session.executionRootDirectory}/target/${project.artifactId}.jar"
file="${project.build.directory}/${project.artifactId}.jar" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
yml配置
server:
port: 18001
spring:
application:
name: spring-cloud-service
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
management:
endpoint:
web:
exposure:
include:'*'
啟動(dòng)類
package com.lison.springcloudservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudServiceApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudServiceApplication.class, args);
}
}
接下來開始修改 spring-cloud-service模塊的代碼, 將其注冊到nacos服務(wù)上
基于Ribbon實(shí)現(xiàn)負(fù)載均衡
Ribbon是Spring Cloud的一個(gè)組件, 它可以讓我們使用一個(gè)注解就能輕松的搞定負(fù)載均衡
1、在RestTemplate 的生成方法上添加@LoadBalanced注解
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
2、修改服務(wù)調(diào)用的方法
@RestController
public class TestController {
@Autowired
private RestTemplate restTemplate;
@GetMapping(value = "/naocs/consumer")
public String getServerPort(){
return restTemplate.getForObject( "http://spring-cloud-service/getServerProd",String.class);
}
}
3、通過idea再啟動(dòng)一個(gè) spring-cloud-service 微服務(wù),設(shè)置其端口為18011
4、通過nacos查看微服務(wù)的啟動(dòng)情況
Ribbon支持的負(fù)載均衡策略
Ribbon內(nèi)置了多種負(fù)載均衡策略,內(nèi)部負(fù)載均衡的頂級接口為 com.netflix.loadbalancer.IRule , 具體的負(fù)載策略如下圖所示:
策略名 | 策略描述 | 實(shí)現(xiàn)說明 |
---|---|---|
BestAvailableRule | 選擇一個(gè)最小的并發(fā) 請求的server | 逐個(gè)考察Server,如果Server被 tripped了,則忽略,在選擇其中 ActiveRequestsCount最小的serve |
AvailabilityFilteringRule | 過濾掉那些因?yàn)橐恢?連接失敗的被標(biāo)記為 circuit tripped的后 端server,并過濾掉 那些高并發(fā)的的后端 server(active connections 超過配 置的閾值) | 使用一個(gè)AvailabilityPredicate來包含 過濾server的邏輯,其實(shí)就就是檢查 status里記錄的各個(gè)server的運(yùn)行狀態(tài) |
WeightedResponseTimeRule | 根據(jù)相應(yīng)時(shí)間分配一 個(gè)weight,相應(yīng)時(shí) 間越長,weight越 小,被選中的可能性 越低。 | 一個(gè)后臺線程定期的從status里面讀 取評價(jià)響應(yīng)時(shí)間,為每個(gè)server計(jì)算 一個(gè)weight。Weight的計(jì)算也比較簡 單responsetime 減去每個(gè)server自己 平均的responsetime是server的權(quán) 重。當(dāng)剛開始運(yùn)行,沒有形成statas 時(shí),使用roubine策略選擇server。 |
RetryRule | 對選定的負(fù)載均衡策略機(jī)上重試機(jī)制。 | 在一個(gè)配置時(shí)間段內(nèi)當(dāng)選擇server不 成功,則一直嘗試使用subRule的方 式選擇一個(gè)可用的server |
RoundRobinRule | 輪詢方式輪詢選擇 server | 輪詢index,選擇index對應(yīng)位置的 server |
RandomRule | 隨機(jī)選擇一個(gè)server | 在index上隨機(jī),選擇index對應(yīng)位置 的server |
ZoneAvoidanceRule | 復(fù)合判斷server所在 區(qū)域的性能和server 的可用性選擇server | 使用ZoneAvoidancePredicate和 AvailabilityPredicate來判斷是否選擇 某個(gè)server,前一個(gè)判斷判定一個(gè) zone的運(yùn)行性能是否可用,剔除不可 用的zone(的所有server), AvailabilityPredicate用于過濾掉連接 數(shù)過多的Server。 |
我們可以通過修改配置來調(diào)整Ribbon的負(fù)載均衡策略,具體代碼如下:
spring-cloud-service: # 調(diào)用的提供者的名稱
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
基于Feign實(shí)現(xiàn)服務(wù)調(diào)用
什么是Feign
Feign是Spring Cloud提供的一個(gè)聲明式的偽Http客戶端, 它使得調(diào)用遠(yuǎn)程服務(wù)就像調(diào)用本地服務(wù) 一樣簡單, 只需要?jiǎng)?chuàng)建一個(gè)接口并添加一個(gè)注解即可。
Nacos很好的兼容了Feign, Feign默認(rèn)集成了 Ribbon, 所以在Nacos下使用Fegin默認(rèn)就實(shí)現(xiàn)了負(fù) 載均衡的效果。
Feign的使用
1、加入Feign依賴
<!--fegin組件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、在主類上添加Fegin的注解
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
//開啟Fegin
3創(chuàng)建一個(gè)service, 并使用Fegin實(shí)現(xiàn)微服務(wù)調(diào)用
@FeignClient("spring-cloud-service")
public interface ITestService {
//指定調(diào)用提供者的哪個(gè)方法
@GetMapping(value = "/getServerProd")
String getServerPort();
}
4、修改controller代碼,并啟動(dòng)驗(yàn)證文章來源:http://www.zghlxwxcb.cn/news/detail-834877.html
@RestController
public class TestController {
@Autowired
private RestTemplate restTemplate;
@Autowired
private ITestService iTestService;
@GetMapping(value = "/naocs/consumer")
public String getServerPort(){
return iTestService.getServerPort();
}
}
5、重啟buding微服務(wù),訪問:http://127.0.0.1:18000/naocs/consumer 查看效果文章來源地址http://www.zghlxwxcb.cn/news/detail-834877.html
到了這里,關(guān)于Spring Cloud Alibaba-02-Nacos Discovery服務(wù)治理及負(fù)載均衡的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!