Nacos搭建流程

要使用nacos,我们首先得下载它的服务端,下载地址https://github.com/alibaba/nacos/releases

根据你的Spring Cloud Alibaba版本来下载需要使用的版本

我这里是tar.gz的,下载完成后,解压,进入bin目录

执行sh startup.sh -m standalone

通过docker安装nacos服务端

docker pull nacos/nacos-server:1.1.3

docker run -d --name nacos -p 8848:8848 --env MODE=standalone nacos/nacos-server:1.1.3

然后通过浏览器访问http://127.0.0.1:8848/nacos/

此时界面如图所示

输入账号nacos,密码nacos后,进入管理界面

搭建一个Spring Cloud Alibaba项目,在父项目中,Springboot版本2.1.7,SpringCloud版本Greenwich.SR2,SpringCloudAlibaba版本2.1.1.RELEASE

<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
<spring-cloud-alibaba.version>2.1.1.RELEASE</spring-cloud-alibaba.version>
<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-dependencies</artifactId>
         <version>${spring-cloud.version}</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
      <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>

在具体的子项目中放入如下依赖

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

添加配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: user

启动项目,端口8080,在管理界面中可以看到

我们的项目已经被注册进来了。现在我们来建一个类似的项目,端口号8081,编写一个测试Controller,来查找之前的user项目。

@RestController
public class TestController {
    /**
     * 无论使用哪种注册中心(Eureka,Zookeeper,Consul),该DiscoveryClient是通用的
     * 它是一个接口
     */
    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/test")
    public List<ServiceInstance> findUser() {
        return discoveryClient.getInstances("user");
    }
}

运行后,访问如下

如果user启动多个实例,这里也可以获取多个user的信息