nacos学习笔记

1. 下载与启动

#下载地址GitHub
https://github.com/alibaba/nacos/releases
#启动命令-单机模式
#切换至bin目录下
#Linux启动
sh startup.sh -m standalone
#Windows启动
cmd startup.cmd -m standalone

1.1 备注

#nacos访问地址 IP+Port/nacos
#默认用户名与密码都是nacos

2. 使用注册中心

2.1 导入相关jar包

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.0</version>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!--nacos注册中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

2.2 配置bootstrap.yaml

spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.127:8848 #注册中心地址
server:
  port: 10000

2.3 备注

#接口访问方式
http://nacos-provider/接口

3. 使用配置中心

image-20210714171043976

3.1 配置规则

  • dataId :格式如下 $ - $ . $
  • prefix 默认为 spring.application.name 的值
  • spring.profiles.active 当前环境对应的 profile
  • file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。 目前只支持 properties 类型。

注:当activeprofile 为空时直接填写 spring.application.name值即可 默认properties

3.2 pom中引入配置中心jar

<!--Nacos注册中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

3.3 指定配置中心

spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.127:8848 #注册中心地址
      config:
        server-addr: 192.168.0.127:8848 #注册中心地址

server:
  port: 10000

4. 环境隔离

使用Nacos中命名空间。

  • 新建命名空间
  • 自动生成id 4eb2f2c7-bf52-424f-957c-881752ca2dfb
#新建配置项nacos-provider-TEST.properties
Group:projectA
  • 指定配置
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      config:
        server-addr: 192.168.0.187:8848
        group: Test #指定分组
        namespace: 4eb2f2c7-bf52-424f-957c-881752ca2dfb
      discovery:
        server-addr: 192.168.0.187:8848
        namespace: 4eb2f2c7-bf52-424f-957c-881752ca2dfb #指定命名空间id
  profiles:
    active: TEST #指定开发环境

4.1 规范使用

使用启动参数指定

image-20210714174527967

5. 配置集群

  • 需要mysql数据库 且 版本5.6.5+
  • sql文件存放位置nacos的config目录
  • 需要修改nacos配置
  • 使用ningx负载均衡

5.1 修改nacos配置

修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://192.168.0.205:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

多台数据库参照:

spring.datasource.platform=mysql

#数据库实例个数
db.num=2

# 第1个实例的地址
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
# 第2个实例的地址
db.url.1=jdbc:mysql://11.162.196.17:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=123456

接着复制conf目录下cluster.conf.example文件出一个新文件cluster.conf,并配置上所有集群节点的地址和端口信息,最后依次执行三个startup-xxx.sh脚本文件启动Nacos。(注意:不需要添加任何模式参数,将以集群模式启动)

image-20210714175003750

注:修改nacos端口,编辑启动文件修改-Dserver.port项

5.2 配置负载均衡

ningx配置文件下

upstream nacoscluster {
    server 192.168.0.127:8841;
    server 192.168.0.127:8842; 
    server 192.168.0.127:8841;
}

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /nacos/ {
        #root   html;
        #index  index.html index.htm;
        proxy_pass http://nacoscluster/nacos/;
    }
}

访问:ningx所在ip+端口/nacos

Q.E.D.


这个人很懒,什么都没有写