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

 

posted on 2021-03-02 14:06  fuanfei  阅读(603)  评论(0)    收藏  举报