1、nacos版本:2.1.2,下载地址:https://github.com/alibaba/nacos/releases
2、JDK版本:jdk1.8.0_351,下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
3、SpringBoot、SpringCloud、SpringCloudAlibaba版本
参考https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
SpringBoot版本 spring.cloud.alibaba版本 spring.cloud版本 2.4.2 2021.1 2020.0.1
https://github.com/alibaba/nacos/releases
unzip nacos-server-2.1.2.zip 或者 tar -xvf nacos-server-2.1.2.tar.gz
cd nacos/bin
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
访问:http://192.168.129.128:8848/
服务注册
curl -X POST ‘http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080’
服务发现
curl -X GET ‘http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName’
发布配置
curl -X POST “http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld”
获取配置
curl -X GET “http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test”
sh shutdown.sh
<!--nacos服务注册和配置文件--> <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> <!--在SpringBoot 2.4.x的版本之后,对于bootstrap.properties/bootstrap.yaml配置文件 (我们合起来成为Bootstrap配置文件)的支持,需要导入如下的依赖或者使用spring.cloud.bootstrap.enabled=true --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
#开启nacos日志 logging: level: com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: debug #对应配置文件名称 ${spring.application.name}-${spring.profiles.active}.${file-extension} spring: profiles: active: dev application: name: nacos-demo cloud: nacos: #服务相关 discovery: server-addr: 192.168.129.128:8848 #配置文件相关 config: #enabled: false #完全关闭 Spring Cloud Nacos Config server-addr: 192.168.129.128:8848 file-extension: yaml group: DEFAULT_GROUP namespace: 7f1a800b-6fb5-444e-baf9-ca17a7e3ce76 #不填默认public
@SpringBootApplication @EnableDiscoveryClient public class NacosDemoApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosDemoApplication.class, args); String userName = applicationContext.getEnvironment().getProperty("user.name"); String userAge = applicationContext.getEnvironment().getProperty("user.age"); System.err.println("user name :"+userName+"; age: "+userAge); String env = applicationContext.getEnvironment().getProperty("current.env"); System.err.println("current.env value is " + env); } }
出现以下日志说明配置文件加载成功
2022-10-25 16:47:22.580 DEBUG 23088 — [ main] c.a.c.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: ‘nacos-demo-dev.yaml’, group: ‘DEFAULT_GROUP’, data:
current.env: dev-env
user:
name: ‘哈哈’
age: 152022-10-25 16:47:22.584 INFO 23088 — [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name=‘bootstrapProperties-nacos-demo-dev.yaml,DEFAULT_GROUP’}, BootstrapPropertySource {name=‘bootstrapProperties-nacos-demo.yaml,DEFAULT_GROUP’}, BootstrapPropertySource {name=‘bootstrapProperties-nacos-demo,DEFAULT_GROUP’}]
出现以下日志说明服务注册成功
2022-10-25 16:47:26.230 INFO 23088 — [ main] com.alibaba.nacos.client.naming : [BEAT] adding beat: BeatInfo{port=9000, ip=‘192.168.129.1’, weight=1.0, serviceName=‘DEFAULT_GROUP@@nacos-demo’, cluster=‘DEFAULT’, metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map.
2022-10-25 16:47:26.230 INFO 23088 — [ main] com.alibaba.nacos.client.naming : [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@nacos-demo with instance: Instance{instanceId=‘null’, ip=‘192.168.129.1’, port=9000, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName=‘DEFAULT’, serviceName=‘null’, metadata={preserved.register.source=SPRING_CLOUD}}
2022-10-25 16:47:26.233 INFO 23088 — [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, DEFAULT_GROUP nacos-demo 192.168.129.1:9000 register finished
项目启动成功之后,控制台会输入如下值:
user name :哈哈; age: 15
current.env value is dev-env
在顶部添加第一环节中的JAVA_HOME,并修改启动方式为单列,其中java环境变量必须得配置成自己的
SpringBoot 2.4.x的版本之后添加依赖spring-cloud-starter-bootstrap才能识别
这个id在Nacos控制台命名空间导航栏的列表可以找到
去Nacos控制台看一下配置文件Data Id是否正确
组成规则是: s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name−{spring.profiles.active}.${spring.cloud.nacos.config.file-extension},不要写错,大小写保持一致
如不指定环境则是nacos-demo.yaml,指定dev环境则是nacos-demo-dev.yaml
Note | ${spring.profiles.active} 当通过配置文件来指定时必须放在 bootstrap.properties 文件中。 |
---|
具体参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
加载顺序: bootstrap.yml` > `bootstrap.properties` > `application.yml` > `application.properties 一旦bootStrap.yml 被加载,则内容不会被覆盖,即便后期加载的application.yml的内容标签与bootstrap的标签一致,application 也不会覆盖bootstrap,而application.yml 里面的内容可以动态替换
Note | nacos 的地址是本地的话,写127.0.0.1,不写localhost; 注意当你使用域名的方式来访问 Nacos 时,spring.cloud.nacos.config.server-addr 配置的方式为 域名:port 。 例如 Nacos 的域名为abc.com.nacos,监听的端口为 80,则 spring.cloud.nacos.config.server-addr=abc.com.nacos:80 。 注意 80 端口不能省略。 |
---|