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 版本。html

更多版本對應關係參考:版本說明 Wikigit

(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,提供一個接口github

//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)啓動服務,控制檯打印如下內容,就說明註冊成功了。 spring

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控制檯,咱們能夠在服務列表中發現咱們的服務了。markdown

 

 注意事項:app

(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的使用待後續.....
相關文章
相關標籤/搜索