nacos

下载nacos
单机启动方式
服务发现与注册
配置中心
动态更新
配置外置Mysql
集群搭建

下载nacos

https://nacos.io/zh-cn/docs/quick-start.html

单机启动方式

以2.1.0版本的nacos为例,bin/startup.cmd默认模式是cluster会启动失败。

使用命令行启动,指定模式为standalone

控制台地址,默认的账号密码是 nacos nacos

http://169.254.14.221:8848/nacos/

服务发现与注册

注意springcloud需要与springcloud-alibaba与nacos版本对照。贴一下我这里使用的版本。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.datang</groupId>
    <artifactId>api</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
View Code

配置yml文件

server:
  port: 8080

spring:
  application:
    name: api
  cloud:
    nacos:
      discovery:
        server-addr: 127.00.1:8848
View Code

启动项目后,在nacos控制台可以看到服务已经注册。

指定namespace和group

namespace需要在控制台创建,group需要在配置文件中指定。命名空间->分组->服务名

spring:
  cloud:
    nacos:
      discovery:
        namespace: 025c6a5b-cc0d-45a4-ba81-bc25eb530789
        group: group1
        server-addr: 127.00.1:8848
View Code

配置中心

首先在nacos控制台增加配置文件,注意Data ID是服务名也就是spring.application.name。

在项目中创建bootstrap.yml文件,bootstrap.yml的优先级高于application.yml,需要有以下配置。

spring:
  application:
    name: api
  cloud:
    nacos:
      config:
        server-addr: 127.00.1:8848
        file-extension: yml
View Code

项目启动后,依然是注册到了namespace1中的group1里,说明配置文件生效了,这里也可以看出,注册中心和配置中心使用的不是一个namespace和group也可以,如果想要设置namespace和group需要以下配置。

spring:
  application:
    name: api
  cloud:
    nacos:
      config:
        namespace: 025c6a5b-cc0d-45a4-ba81-bc25eb530789
        group: group1
        server-addr: 127.00.1:8848
        file-extension: yml
View Code

动态更新

动态更新主要依赖于@RefreshScope注解,在nacos修改配置后不用重启也可以刷新配置。

多环境配置首先在bootstrap中声明使用环境,然后再nacos配置中心配置对应的文件。需要注意的是,如果使用多环境Data Id就不能只是服务名了,要带上文件后缀。其实不是多环境也可以带上文件后缀。以下代码api,api-dev,api-test的端口号分别是8080,7080,6080,启动项目后可以看到端口号是有变化的。

spring:
  application:
    name: api
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        namespace: 025c6a5b-cc0d-45a4-ba81-bc25eb530789
        group: group1
        server-addr: 127.00.1:8848
        file-extension: yml
View Code

配置外置Mysql

nacos只支持配置mysql数据库并且要求mysql的版本必须是5.6.5+。

修改application.properties文件,配置自己的mysql数据源

找到conf文件夹下的nacos-mysql.sql执行sql脚本。

数据库中只存了配置管理的内容。

集群搭建

集群搭建只需要新增一个集群文件cluster.conf,不需要修改其他内容,java客户端连接时指定多个server-addr即可。

169.254.14.221:8840
169.254.14.221:8850
169.254.14.221:8860

2022-06-28 22:06:27,712 INFO Nacos started successfully in cluster mode. use external storage

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-06-28 22:12  顶风少年  阅读(179)  评论(0编辑  收藏  举报
返回顶部