Skip to content
🔴🟠🟡🟢🔵🟣🟤⚫⚪

spring-cloud-alibaba-demo

四、搭建整合nacos

docker-compose.yaml安装nacos

java
version: '3'
services:
  nacos:
    # 注意 2.0 不需要额外安装数据库了,docker run --name nacos-standalone -e MODE=standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:2.0.3
    image: 'nacos/nacos-server:2.0.3'
    restart: always
    container_name: nacos
    environment:
      # 启动模式 单机
      MODE: 'standalone'
      # nacos默认端口号
      NACOS_SERVER_PORT: 8848
#      # 是否开启权限系统
#      NACOS_AUTH_ENABLE: 'true'
#    volumes:
#      - /usr/local/app/minio/data:/data
#      - /usr/local/app/minio/config:/root/.minio
#    command:
#      server /data
    ports:
      - '8848:8848'
      - '9848:9848'
      - '9849:9849'

#在当前目录打开终端,使用命令 docker-compose up -d 即可运行;
#在当前目录打开终端,使用命令 docker-compose down 即可运行;

安装完成后 http://127.0.0.1:8848/nacos 默认用户名和密码都是 nacos 进入后台管理页面

五、 整合nacos 注册中心,新建cloud-system模块

cloud-system模块中pom.xml添加nacos依赖

java
<!--添加nacos客户端-->
<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置文件中添加配置:

java
# nacos 地址
spring
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  # 应用
  application:
    # 应用名称
    name: cloud-system-service

启动类上加上注解开启 @EnableDiscoveryClient 服务注册

发现服务已经注册上来了:

java
@RequiredArgsConstructor
@RequestMapping("/v1/nacos")
@RestController
public class NacosController {

    private final DiscoveryClient discoveryClient;

    @GetMapping("/get")
    public R get(){
        List<ServiceInstance> instances = discoveryClient.getInstances("cloud-system-service");
        ServiceInstance serviceInstance = instances.get(0);
        // 获取到nacos注册中心上的服务ip以及端口
        String host = serviceInstance.getHost();
        int port = serviceInstance.getPort();
        return R.data(host+":"+port);
    }
}

测试发送get请求获取信息:

json
{
"code": 200,
"success": true,
"data": "10.113.229.45:8000",
"msg": "操作成功"
}