docker nacos安装,注册,配置,测试
- docker安装nacos
- 控制台
- 测试工程
- 添加依赖
- 编辑配置文件
- bootstrap.yml
- application.yml和application-dev
- 添加nacos配置
- 编写测试Controller
- 接口测试
docker安装nacos
docker run \
--name nacos-roswu -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
--mount source=nacos-logs,destination=/home/nacos/logs \
--mount source=nacos-conf,destination=/home/nacos/conf \
nacos/nacos-server
运行上分命令,运行nacos容器,可以不提前pull镜像,也不需要提前创建nacos-logs和nacos-conf两个volume
使用docker logs nacos-roswu
查看容器运行日志
容器运行正常,接着可以到/var/lib/docker/volumes/nacos-conf/_data
和/var/lib/docker/volumes/nacos-logs/_data
两个目录下,查看和编辑nacos容器内映射的日志和配置。这里就不展示了。
控制台
使用http://宿主机ip:8848/nacos
访问nacos控制台,如果是云服务器的话,需要查看8848端口是否开发。用户名和密码均为nacos
这里可以查看和监控配置中心和注册进来的服务信息。
测试工程
创建一个springboot工程,
添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.roswu.nacos</groupId>
<artifactId>nacos-demo</artifactId>
<version>1.0.0.1-SNAPSHOT</version>
<name>nacos-roswu</name>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<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>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
编辑配置文件
bootstrap.yml,application.yml,application-dev.yml三个配置文件
bootstrap.yml
server:
port: 8088
spring:
application:
name: nacosRoswu
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: nacos主机ip:8848 #配置Nacos地址
config:
server-addr: nacos主机ip:8848 #Nacos地址
file-extension: yml #这里我们获取的yaml格式的配置
management:
endpoints:
web:
exposure:
include: '*'
application.yml和application-dev
application.yml和application-dev暂时就空着吧,nacos启动时需要加载bootstrap.yml中的系统级别配置,所有相关的系统配置都放到了该文件中,application是项目级别的配置。
添加nacos配置
配置管理–》配置列表–》新增,随便添加了一个以下配置
这里要特别特别注意Data Id的命名,不能随意取,由这三部分拼接而成
编写测试Controller
编写一个controller
@RefreshScope
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${test.hello}")
private String hello;
@GetMapping("/hello")
public String hello(){
return hello;
}
}
这里也要注意@RefreshScope
注解,因为hello是成员属性,初始化一次后,每次值属性不会主动变,使用该注解后,可以根据nacos配置动态更新。
接口测试
启动服务后,访问地址http://localhost:8088/test/hello
更新nacos配置后,刷新,显示的值可以动态更新。