一步一坑
服务器端
1、修改nacos相关配置文件(端口)
/conf/application.properties
里面修改 server.port
2、修改启动参数
/bin/startup.sh
93行,修改jvm相关参数
3、配置mysql
3.1 使用 conf/nacos-mysql.sql 文件初始化数据库
3.2 修改conf/application.properties文件增加mysql支持
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos
4、启动nacos
非集群模式,使用 sh startup.sh -m standalone 启动
客户端
服务注册与发现
1、cloud加入相关依赖
2.3.2.RELEASE
Hoxton.SR8
2.2.5.RELEASE
com.alibaba.cloud
spring-cloud-alibaba-dependencies
${spring-cloud-alibaba.version}
pom
import
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-starter-parent
${spring-boot.version}
pom
import
org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2、编辑配置文件
程序名称
spring:
application:
name: demo-client
注册中心相关配置
# discovery 为注册中心相关配置,可以配置到application.yml
#config 为配置中心相关配置,只能使用 bootstrap.yml
内容如下
spring:
cloud:
nacos:
# 注册中心链接地址
discovery:
server-addr: 127.0.0.1:8848
# 配置中心地址
config:
server-addr: 127.0.0.1:8848
操作成功时如下
使用配置中心
1、配置bootstrap.yml配置文件
spring:
cloud:
nacos:
# 注册中心链接地址
discovery:
server-addr: 127.0.0.1:8848
# 配置中心地址
config:
server-addr: 127.0.0.1:8848
# 配置文件前缀,如果不写,默认为应用程序名称,即spring.application.name
prefix: erp
# 配置文件分组,如果不写,默认值为 DEFAULT_GROUP
group: erp-group
# 配置文件后缀,如果不写,默认值为 properties,nacos 2.0以后支持的格式有很多,具体参考配置中心
file-extension: properties
nacos的server端配置的dataId,实际上是
{prefix}-{spring.profiles.active}.{file-extension}
当 spring.profiles.active
为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {prefix}.{file-extension}
用上面的代码举个例子
如果 active为dev,那么server端的dataId应该为 erp-dev.properties
如果 active为null,那么server端的dataId应该为 erp.properties
2、代码如何使用配置中心
两种使用方案
第一种,单独声明变量,并进行动态刷新,动态刷新使用@RefreshScope
注解
@RestController
@RequestMapping
@RefreshScope
public class TestController {
// 远程配置文件中的属性key
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
方法二,弄成配置bean
@Configuration
@RefreshScope
public class RemoteProperties {
@Value("${user.name:testUserName}")
private String userName;
@Value("${user.age:0}")
private int age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "RemoteProperties{" +
"userName='" + userName + '\'' +
", age=" + age +
'}';
}
}
在使用的地方,注入即可,如果配置类声明类动态刷新,则使用点不需要加上动态刷新
@RestController
@RequestMapping
public class TestController {
@Autowired
RemoteProperties remoteProperties;
@GetMapping("test")
public String test(){
return remoteProperties.toString();
}
}
服务器端—集群版本
1、下载nacos
2、解压nacos
3、cd nacos/conf
4、cp cluster.conf.example cluster.conf
5、vi cluster.conf
6、输入其他节点ip:port,不可用域名!!!
示例:
10.80.153.98:8848
10.81.54.114:8848
10.81.54.196:8848
7、cd nacos/bin
8、./startup.sh
9、观察启动日志 nacos/logs/nacos.log
10、查看集群是否正常上线,如果正常,如图
使用配置中心-----集群版
配置bootstrap.yml配置文件
spring:
cloud:
nacos:
# 注册中心链接地址,逗号分隔
discovery:
server-addr: 10.80.153.98:8848,10.81.54.114:8848,10.81.54.196:8848
# 配置中心地址
config:
server-addr: 10.80.153.98:8848,10.81.54.114:8848,10.81.54.196:8848
nacos 使用spring boot admin
因为项目配置了 server.servlet.context-path 属性,所以心跳检测出现奇奇怪怪的问题,按照以下yml配置,解决
spring:
cloud:
nacos:
# 注册中心链接地址
discovery:
server-addr: 127.0.0.1:8848,192.168.1.3:8848,192.168.1.4:8848
group: test-group
# 元数据配置
metadata:
management:
# spring boot admin 心跳相关兼容处理
context-path: ${server.servlet.context-path}/actuator