Spring Cloud+Nacos實現服務注冊中心(Hoxton版本)


前提條件
首先下載安裝一個nacos server,然后啟動nacos server。Nacos的下載和安裝流程查看 https://www.cnblogs.com/ying-z/p/14630738.html
 
注冊一個服務到nacos
(1)用SpringBoot新建一個服務,服務名稱為nacos-discovery-server。
(2)在pom中加入必要的依賴  
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencyManagement>
    <dependencies>
         <!-- 聲明Spring cloud的版本為Hoxton.SR3-->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR3</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!-- 聲明Spring cloud alibaba版本為2.1.0.RELEASE -->
      <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.2.1.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- 聲明nacos依賴 -->        
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

注意:版本 2.1.x.RELEASE 對應的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 對應的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 對應的是 Spring Boot 1.5.x 版本。

更多版本對應關系參考:版本說明 Wiki

(3)在application.properties中配置服務名稱和nacos地址
server.port=9001
spring.application.name=nacos-discovery-server
spring.application.cloud.nacos.discovery.server-addr=127.0.0.1:8848

(4)新建一個Controller,提供一個接口

//SpringBoot主入口
@SpringBootApplication
public class NacosDiscoveryServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosDiscoveryServerApplication.class, args);
    }
}
//接口
@RestController
public class NacosDiscoveryController {
    @GetMapping("/nacos/discovery/hello")
    public String hello(@RequestParam String name) {
        return "hello, nacos discovery! " + name;
    }
}

(5)啟動服務,控制台打印以下內容,就說明注冊成功了。 

2020-04-28 14:49:42.749 INFO 9864 --- [main] c.a.c.n.registry.NacosServiceRegistry:nacos registry, DEFAULT_GROUP nacos-discovery-server 192.168.9.114:9001 register finished

(6)打開nacos控制台,我們可以在服務列表中發現我們的服務了。

 

 注意事項:

(1)為什么我們的啟動類上沒有加@EnableDiscoveryClient注解,但是已經把服務注冊到nacos上了?
在SpringCloud E版本的時候,對服務注冊進行了優化,在依賴了spring-cloud-starter-alibaba-nacos-discovery之后,默認會將服務注冊到注冊中心。
(2)在已經依賴spring-cloud-starter-alibaba-nacos-discovery的情況下,如果我們不想讓我們的服務注冊到nacos應該怎么做?
在配置文件中添加如下依賴即可:
spring.cloud.nacos.discovery.enabled=false 
服務的消費(調用)
我們已經搭建一個服務注冊中心,同時也向這個服務注冊中心注冊了服務。接下來我們就可以發現和消費服務了。這其中服務的發現由nacos實現,而服務的消費可以由Ribbon或者Feign等實現,也就是說服務的調用需要nacos和Feign(Ribbon)兩者配合起來才能實現。Feign的使用待后續.....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM