下载
官网
本次使用版本:nacos-server-1.1.4
启动
把刚才下载的压缩包解压到对应目录,进入bin目录下打开命令窗口
输入代码:
F:\java\微服务\Nacos\nacos-server-1.1.4\nacos\bin>startup.cmd
测试:http://localhost:8848/nacos
启动成功!查看服务,默认账号密码:nacos
创建注册中心
父pom文件添加:
<!--spring cloud alibaba 2.2.0.RELEASE-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
子pom文件:
<dependencies>
<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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
yml文件:
server:
port: 9001
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848
业务类,controller层,简单写一个:
package com.atguigu.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* @author zhouyang
* @date 2020/5/23 - 17:02
**/
@RestController
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@GetMapping("/payment/nacos/{id}")
public String getPayment(@PathVariable("id") Integer id) {
return "nacos register, serverport=" + serverPort + "\t id:" + id;
}
}
启动微服务,启动完成后查看服务列表
测试:http://localhost:9001/payment/nacos/1
创建配置中心
pom文件:
<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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
yml文件:
application.yml
spring:
profiles:
active: dev # 开发环境
# active: test # 测试环境
# active: info # 开发环境
bootstarp.yml
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 # 注册中心
config:
server-addr: localhost:8848 # 配置中心
file-extension: yaml # 这里指定的文件格式需要和nacos上新建的配置文件后缀相同,否则读不到
# group: TEST_GROUP #分组
# namespace: 72fb1ea8-1f06-4daa-a283-bd3311876c3e
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 相当于 nacos-config-client-dev.yaml
在配置管理中创建配置:
Data Id为 :
业务层,controller层:
package com.atguigu.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author zhouyang
* @date 2020/5/23 - 18:10
**/
@RestController
@RefreshScope//实现配置自动更新
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
启动后测试:http://localhost:3377/config/info
Nacos持久化切换配置
解释:
Nacos默认自带的嵌入式数据库derby 查看,
所以,如果启动多个默认配置下的Nacos,数据存储是存在一致性问题的。
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,
目前只支持MySQL的存储。
切换:
1.执行sql文件
从nacos-server-1.1.4\nacos\config目录下找到nacos-mysql.sql文件,并在MySQL数据库中执行
执行完毕后: