Nacos构建步骤
一、启动配置管理
前提条件:下载 Nacos 并启动 Nacos server
1、新建springboot项目
2、在pom文件导入nacos依赖
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.1</version> </dependency>
3、配置
1、在 application.properties 中配置 Nacos server 的地址:
nacos.config.server-addr=127.0.0.1:8848
2、使用 @NacosPropertySource 加载 dataId 为 example 的配置源,并开启自动更新:
@SpringBootApplication @NacosPropertySource(dataId = "example", autoRefreshed = true) public class NacosConfigApplication { public static void main(String[] args) { SpringApplication.run(NacosConfigApplication.class, args); } }
3、通过 Nacos 的 @NacosValue 注解设置属性值。
@Controller @RequestMapping("config") public class ConfigController { @NacosValue(value = "${useLocalCache:123}", autoRefreshed = true) private boolean useLocalCache; @RequestMapping(value = "/get", method = GET) @ResponseBody public string get() { return useLocalCache; } }
访问接口返回123
4、在nacos修改配置


发布后,动态刷新配置

二、启动服务发现
1、添加依赖
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-discovery-spring-boot-starter</artifactId> <version>0.2.1</version> </dependency>
2、在 application.properties 中配置 Nacos server 的地址:
nacos.discovery.server-addr=127.0.0.1:8848
3、使用 @NacosInjected 注入 Nacos 的 NamingService 实例:
@Controller @RequestMapping("discovery") public class DiscoveryController { @NacosInjected private NamingService namingService; @RequestMapping(value = "/get") @ResponseBody public List<Instance> get(@RequestParam String serviceName) throws NacosException { return namingService.getAllInstances(serviceName); } }
4、启动 NacosDiscoveryApplication,调用
curl http://localhost:8080/discovery/get?serviceName=example,此时返回为空 JSON 数组[]。
5、通过调用 Nacos Open API 向 Nacos server 注册一个名称为 example 服务
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8080'
再次访问 curl http://localhost:8080/discovery/get?serviceName=example,此时返回内容为:
[{ "instanceId": "127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@example", "ip": "127.0.0.1", "port": 8080, "weight": 1.0, "healthy": true, "cluster": { "serviceName": null, "name": "", "healthChecker": { "type": "TCP" }, "defaultPort": 80, "defaultCheckPort": 80, "useIPPort4Check": true, "metadata": {} }, "service": null, "metadata": {} }]
三、搭建nacos集群
1、修改配置文件
解压nacos安装包后进入nacos目录下conf目录,有配置文件cluster.conf.example,复制成cluster.conf
cp cluster.conf.example cluster.conf
请每行配置成ip:port。(请配置3个或3个以上节点,每个节点都要修改)
# ip:port
192.168.20.000:8848
192.168.20.001:8848
192.168.20.002:8848
192.168.20.003:8848
2、 配置 MySQL 数据库
1、新建一个nacos_config,导入nacos解压目录下conf/nacos-mysql.sql 文件
2、修改conf/application.properties,增加 mysql 数据源配置
#主从配置可以输入2
db.num=1
db.url.0=jdbc:mysql://192.168.xx.xxx:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
#多数据源,我这里只用一个数据库
#db.url.1=jdbc:mysql://192.168.xx.xxx:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
3、 启动 nacos
进入nacos目录bin下:
Linux版
启动命令: sh startup.sh 或 ./startup.sh
Windows版
启动命令: 双击startup.cmd
但默认情况下启动为单机版,要以集群的方式启动,则需要修改启动文件,编辑startup.cmd 后再启动
登录到界面控制台(用户名密码默认都是nacos)http://192.168.xx.xxx:8848/nacos
进入【集群管理】-【节点列表】:可以看到集群的节点
四、关于数据库
config_info表存的是配置信息
his_config_info表存的是历史配置信息
问题记录
服务注册存哪张表;
订阅者列表;
数据备份在哪里;
tail -500f /home/nacos/nacos/logs/start.out
五、源码操作
nacos的源码下载,实现注册一个,快速开始看看例子【https://nacos.io/zh-cn/】
启动-com.alibaba.nacos.Nacos
VM option: -Dnacos.standalone=true
注意:版本冲突,项目构建一定要对应版本
linux启动
nacos的bin子目录下执行:./startup.sh -m standalone
注意:上传 nacos-server-2.1.0-SNAPSHOT.tar.gz ,windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本
处理:vim startup.sh
:set ff=unix
将fileformat=doc -> fileformat=unix
浙公网安备 33010602011771号