nacos——注册、配置中心

1、安装nacos

1.拉取镜像

docker pull nacos/nacos-server

2.运行容器

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server

 3.设置开机自动启动

docker update --restart=always  nacos

安装后nacos访问地址:http://xxx.xxx.x.x:8848/nacos/

nacos——注册、配置中心_第1张图片

2、nacos注册和配置中心

首先新建命名空间

nacos——注册、配置中心_第2张图片

 pom.xml


    org.springframework.cloud
    spring-cloud-starter-bootstrap
    3.0.1



    com.alibaba.nacos
    nacos-client
    1.4.1


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery
    2021.1



    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-config
    2021.1

启动类加 @EnableDiscoveryClient 注解

@EnableDiscoveryClient
@SpringBootApplication
public class NacosRegisterApplication {

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

}

bootstrap.yml

server:
  port: 3377
spring:
  application:
    name: ssj-product
  profiles:
    active: dev

bootstrap-dev.yml

spring:
  cloud:
    nacos:
      discovery:
        namespace: ssj-cloud-dev
        server-addr: 192.168.56.10:8848
      config:
        #声明 dataid 文件扩展名 这里配置的文件扩展名是指Nacos Config 配置管理中的配置格式,默认为Properties 只针对默认的配置文件
        #如果使用Properties格式进行配置可以不用指定格式,如果改为其他格式则需要指定文件格式,否则会报错
        file-extension: yml
        server-addr: 192.168.56.10:8848
        namespace: ssj-cloud-dev
        # 共享配置
        shared-configs:
          - ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

到此基本就已经配置好了,就可以开始进行用了。

启动项目,可以看到服务已经注册成功。

nacos——注册、配置中心_第3张图片

3、设置配置修改后自动更新,不需要重启服务器 

有两种方式:

首先在nacos中配置如下:

interior:
  website:
    addr: http://192.168.1.222:8000
    url: ${interior.website.addr}/api/consumer/getUrl

第一种:在配置文件上面加上 @RefreshScope 注解,并用 @Value 修饰属性

@Data
@Component
@RefreshScope
public class CallBack1Properties {

    @Value("${interior.website.url}")
    private String url;
}

第二种:在配置文件上面加上 @ConfigurationProperties(prefix = "xxx") 注解

@Data
@Component
@ConfigurationProperties(prefix = CallBack2Properties.PREFIX)
public class CallBack2Properties {
    public static final String PREFIX = "interior.website";

    private String url;
}

你可能感兴趣的:(springCloud,微服务,docker,java,后端)