日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nacos enablediscoveryclient_Nacos入门指南03 服务发现实践

發布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nacos enablediscoveryclient_Nacos入门指南03 服务发现实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你好,歡迎閱讀,本文是系列文章中的第3篇。

Part1 - Nacos 是什么?

Part2 - Nacos 環境搭建

Part3 - Nacos 服務發現實踐

Part4 - Nacos 分布式配置實踐

本文的目的是對 SpringBoot 服務整合 Nacos,實現服務調用。

下面會創建2個 SpringBoot 項目:

  • service-provider
  • service-consumer

都整合 Nacos,啟動后可以自動注冊到 Nacos 服務注冊中心。

然后在 service-consumer 的 Controller 中實現對 service-provider 的接口調用。

步驟:

(1)創建 service-provider 與 service-consumer,整合 Nacos

(2)service-provider 中添加測試接口 "/hello",service-consumer 中調用其 "/hello" 接口

1. 創建服務 整合 Nacos

1.1 service-provider

pom.xml

<?xml ?version="1.0"?encoding="UTF-8"?>
...
????<parent>
????????<groupId>org.springframework.bootgroupId>
????????<artifactId>spring-boot-starter-parentartifactId>
????????
????????<version>2.2.5.RELEASEversion>
????????<relativePath/>
????parent>
????<groupId>com.examplegroupId>
????<artifactId>service-providerartifactId>
????<version>0.0.1-SNAPSHOTversion>
????<name>service-providername>
????<description>Demo?project?for?Spring?Bootdescription>

????<properties>
????????<java.version>1.11java.version>
????properties>

????<dependencies>
????????<dependency>
????????????<groupId>org.springframework.bootgroupId>
????????????<artifactId>spring-boot-starter-webartifactId>
????????dependency>
????????
????????<dependency>
????????????<groupId>com.alibaba.cloudgroupId>
????????????<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
????????dependency>

????dependencies>

????<dependencyManagement>
????????<dependencies>
????????????
????????????<dependency>
????????????????<groupId>org.springframework.cloudgroupId>
????????????????<artifactId>spring-cloud-dependenciesartifactId>
????????????????<version>Hoxton.SR3version>
????????????????<type>pomtype>
????????????????<scope>importscope>
????????????dependency>
????????????
????????????<dependency>
????????????????<groupId>com.alibaba.cloudgroupId>
????????????????<artifactId>spring-cloud-alibaba-dependenciesartifactId>
????????????????<version>2.2.1.RELEASEversion>
????????????????<type>pomtype>
????????????????<scope>importscope>
????????????dependency>
????????dependencies>
????dependencyManagement>

????<build>
????????<plugins>
????????????<plugin>
????????????????<groupId>org.springframework.bootgroupId>
????????????????<artifactId>spring-boot-maven-pluginartifactId>
????????????plugin>
????????plugins>
????build>
...

重點是 SpringBoot、SpringCloud、SpringCloud Alibaba 這3者的版本問題,這里使用的版本為:

  • SpringBoot 2.2.5.RELEASE
  • SpringCloud Hoxton.SR3
  • SpringCloud Alibaba 2.2.1.RELEASE

如何確定各自的版本呢?在 SpringCloud Alibaba 項目的 wiki 文檔中有所說明,地址為:

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

頁面效果:

添加好依賴之后,添加相關配置:

server:
??port:?8081?#?端口
spring:
??application:
????name:?service-provider?#?服務名
??cloud:
????nacos:
??????discovery:
????????server-addr:?localhost:8848?#?nacos?server?地址

然后在啟動類中添加注解:

...
@SpringBootApplication
@EnableDiscoveryClient?//?開啟服務發現
public?class?ServiceProviderApplication?{

????public?static?void?main(String[]?args)?{
????????SpringApplication.run(ServiceProviderApplication.class,?args);
????}

}

1.2 service-consumer

依賴于 service-provider 中一致,還有添加的注解也是一樣的。

只是配置有點不同,需要使用不同的端口,以及服務名稱:

server:
??port:?8082?#?端口
spring:
??application:
????name:?service-consumer?#?服務名
??cloud:
????nacos:
??????discovery:
????????server-addr:?localhost:8848?#?nacos?server?地址

1.3 啟動測試

分別啟動 service-provider 與 service-consumer,啟動后即可在 Nacos 控制臺的服務列表中看到:

說明整合 Nacos 成功。

2. 服務調用

2.1 service-provider

在 service-provider 中添加一個測試接口 /hello:

...
@RestController
public?class?TestController?{
????@GetMapping("hello")
????public?String?hello(@RequestParam?String?name){
????????return?"hello?"?+?name;
????}
}

2.2 service-consumer

在 service-consumer 中進行調用,因為需要使用 RestTemplate,所以先配置一下:

...
@Configuration
public?class?ConsumerConfig?{
????//?定義?RestTemplate?Bean
????@Bean
????public?RestTemplate?restTemplate(){
????????return?new?RestTemplate();
????}
}

下面開始調用:

...
@RestController
public?class?TestController?{
????//?引入?RestTemplate?和?LoadBalancerClient
????@Autowired
????RestTemplate?restTemplate;
????@Autowired
????LoadBalancerClient?loadBalancerClient;

????@GetMapping("hello")
????public?String?hello(@RequestParam?String?name)?{
????????String?result?=?"";

????????//?根據服務名獲取服務實例
????????ServiceInstance?serviceInstance?=?loadBalancerClient.choose("service-provider");

????????//?發起調用,返回調用結果
????????return?restTemplate.getForObject(serviceInstance.getUri()?+?"/hello?name="?+?name,?String.class);
????}
}

2.3 啟動測試

重啟 service-provider、service-consumer,訪問 service-consumer 的 /hello 接口,地址:

http://localhost:8082/hello?name=nacos

返回結果為 "hello nacos",調用成功。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的nacos enablediscoveryclient_Nacos入门指南03 服务发现实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。