基于springcloud alibaba nacos介绍及使用(包含docker)


提示:以下是本篇文章正文内容,下面案例可供参考

一、nacos是什么?

Nacos是SpringCloudAlibaba架构中最重要的组件。
Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。

二、Nacos服务搭建

当前使用allibaba nacos 2.0.3版本

1. 基于win10安装nacos服务

下载地址:nacos码云镜像

下载后进入可以看到该目录
在这里插入图片描述

进入bin/startup.cmd可以启动服务
单机需要修改startup.cmd 里面的 set MODE=“standalone”
或者启动携带参数

#使用单机版本运行
startup.cmd -m standalone

2. 基于docker安装nacos服务

dockerhub:nacos docker镜像
拉取镜像、运行镜像(挂载配置在下方):

#拉取nacos镜像
docker pull nacos/nacos-server:2.0.3
#运行到容器 参数解析
#--restart=always重启docker后自启 --privileged=true授予root权限 
#-e MODE=standalone非集群运行 -v可挂载配置、日志、数据
docker run -itd --name nacos -p8848:8848 --restart=always --privileged=true -e MODE=standalone -e PREFER_HOST_MODE=hostname -v/home/nacos/application.properties:/home/nacos/conf/application.properties -v/home/nacos/logs:/home/nacos/logs nacos/nacos-server:2.0.3

3. 基于mysql数据库存储

需要变更conf/application.properties文件配置

#*************** 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=root
db.password.0=root

### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

二. 访问服务

默认访问地址:http://localhost:8848/nacos
默认账号密码:nacos/nacos

1. 服务列表

  • 可发现已注册的服务信息
    在这里插入图片描述

2. 配置列表

  • namespace:相当于环境,开发环境 测试环境 生产环境 ,每个空间里面的配置是独立的
    默认的namespace是public,配置在cloud项目需要使用命名空间id!
  • group:相当于项目
    在这里插入图片描述

3. 命名空间

  • 主要用于隔离各种环境配置
    在这里插入图片描述

三、Springcloud-alibaba-nacos使用

1. 引入依赖

父依赖:

<properties>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
        <dependencies>
            <!-- SpringCloud 微服务 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- SpringCloud Alibaba 微服务 -->
            <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>

项目依赖:

        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2. 配置信息

代码如下(bootstrap.yml):

server:
  port: 8083 #服务端口
spring:
  application:
    name: cloud-gateway #服务名
  profiles:
    active: dev #激活项
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 #服务地址
        group: cloud #组名
        namespace: 7b9f263b-bddd-4bf4-b655-6e1ad1a9e972 #命名空间默认default 默认可删除该项
      config:
        server-addr: 127.0.0.1:8848 #服务地址
        group: cloud #组名
        namespace: 7b9f263b-bddd-4bf4-b655-6e1ad1a9e972 #命名空间默认default 默认可删除该项
        file-extension: yaml #配置后缀
#config查找规则:先找到namespace,然后找group的 ${spring.application.name}/${prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}文件
#${spring.application.name} = ${prefix}

3. @RefreshScope使用

如果我们需要不停机改变我们的生产环境的某个值。我们需要在对应的类上添加@RefreshScope 进行动态刷新,这里就不多讲解了~


总结

以上就是今天要讲的内容,本文仅仅简单介绍了alibaba nacos 结合Springcloud alibaba的使用!

猜你喜欢

转载自blog.csdn.net/weixin_44571055/article/details/124290038