这里通过docker来启动Nacos Docker
github上最新的nacos-docker项目与官网描述的有一点不同,这里须要修改几个地方:
修改standalone-derby.yaml
version: "3.7"
services:
nacos:
image: nacos/nacos-server:latest
container_name: nacos-standalone
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
depends_on:
- nacos
restart: on-failure
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- 3000:3000
restart: on-failure
第一行的version须要和本机的docker版本对应,见版本对应
另外nacos使用了挂载:
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
volumes:
- ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
须要确认对应目录是否存在,不存在须要创建。
最后执行命令:
docker-compose -f example/standalone-derby.yaml up -d
会下载须要的镜像并启动容器。
至此,Nacos Server启动完成,可通过8848端口访问nacos控制台,默认账号nacos,密码nacos
http://localhost:8848/nacos/index.html
这里以Nacos Spring Cloud的配置中心为例,可下载官方example:nacos-spring-cloud-config-example
pom.xml:
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-config
0.2.1.RELEASE
bootstrap.properties:
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# Nacos \u63A7\u5236\u53F0\u6DFB\u52A0\u914D\u7F6E\uFF1A
# Data ID\uFF1Aexample.properties
# Group\uFF1ADEFAULT_GROUP
# \u914D\u7F6E\u5185\u5BB9\uFF1AuseLocalCache=true
spring.application.name=example
# \u6307\u5B9A\u914D\u7F6E\u7684\u540E\u7F00\uFF0C\u652F\u6301 properties\u3001yaml\u3001yml\uFF0C\u9ED8\u8BA4\u4E3A properties
spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.file-extension=yaml
ConfigController:
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
/**
* http://localhost:8080/config/get
*/
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}
启动后访问http://localhost:8080/config/get
发布一个配置项:
curl -X POST "http://192.168.127.135:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=true"
再次访问http://localhost:8080/config/get
值已经动态改变了,查看控制台:
已经多了一个配置项
在没有明确指定 ${spring.cloud.nacos.config.group}
配置的情况下, 默认使用的是 DEFAULT_GROUP 。如果需要自定义自己的 Group,可以通过以下配置来实现:
spring.cloud.nacos.config.group=DEVELOP_GROUP
发布一个新的group的配置项:
curl -X POST "http://192.168.127.135:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEVELOP_GROUP&content=useLocalCache=true"
更详细的配置请参考官方Nacos Config