当前位置: 移动技术网 > IT编程>开发语言>Java > SpringBoot2 整合Nacos组件,环境搭建和入门案例详解

SpringBoot2 整合Nacos组件,环境搭建和入门案例详解

2020年01月14日  | 移动技术网IT编程  | 我要评论

李旺杨,噩梦 歌词,泰坦计划2010

本文源码:github·点这里 || gitee·点这里

一、nacos基础简介

1、概念简介

nacos 是构建以“服务”为中心的现代应用架构,如微服务范式、云原生范式等服务基础设施。聚焦于发现、配置和管理微服务。nacos提供一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。敏捷构建、交付和管理微服务平台。

2、关键特性

  • 动态配置服务
  • 服务发现和服务健康监测
  • 动态 dns 服务
  • 服务及其元数据管理

3、专业术语解释

  • 命名空间

用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 group 或 data id 的配置。

  • 配置集

一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。

  • 配置集 id

nacos 中的某个配置集的id。配置集id是组织划分配置的维度之一。dataid通常用于组织划分系统的配置集。

  • 配置分组

nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串对配置集进行(group)分组,从而区分 data id 相同的配置集。

  • 配置快照

nacos 的客户端 sdk 会在本地生成配置的快照。当客户端无法连接到 nacos server 时,可以使用配置快照显示系统的整体容灾能力。

  • 服务注册

存储服务实例和服务负载均衡策略的数据库。

  • 服务发现

使用服务名对服务下的实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。

  • 元数据

nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略等。

4、nacos生态圈

nacos 无缝支持一些主流的开源框架生态:

  • spring cloud 微服务框架 ;
  • dubbo rpc框架 ;
  • kubernetes 容器应用 ;

二、nacos环境搭建

1、环境版本

这里在windos环境下搭建nacos单个服务。

  • nacos版本:官方推荐的稳定版本为1.1.4。
  • 基础环境:jdk 1.8+;maven 3.2.x

2、环境包下载

这里直接下载打包好的文件,也可以下载源码自己打包。

https://github.com/alibaba/nacos/releases

下载文件:nacos-server-1.1.4.zip

3、启动环境

  • 启动文件地址:nacos\bin
  • 启动文件:startup.cmd
  • 关闭文件:shutdown.cmd

启动后登陆,账户密码默认:nacos/nacos ;首页效果如下:

三、整合springboot2

注意:版本 0.2.x.release 对应的是 spring boot 2.x 版本,版本 0.1.x.release 对应的是 spring boot 1.x 版本。

1、新建配置

2、核心依赖

<!-- nacos 组件依赖 -->
<dependency>
    <groupid>com.alibaba.boot</groupid>
    <artifactid>nacos-discovery-spring-boot-starter</artifactid>
    <version>0.2.3</version>
</dependency>
<dependency>
    <groupid>com.alibaba.boot</groupid>
    <artifactid>nacos-config-spring-boot-starter</artifactid>
    <version>0.2.3</version>
</dependency>

3、yml配置文件

这里把项目作为服务注册到nacos中。

nacos:
  config:
    server-addr: 127.0.0.1:8848
  discovery:
    server-addr: 127.0.0.1:8848

4、启动类配置

启动类关联配置中心的dataid标识。

@enableswagger2
@springbootapplication
@nacospropertysource(dataid = "ware_id", autorefreshed = true)
public class application7017 {
    public static void main(string[] args) {
        springapplication.run(application7017.class,args) ;
    }
}

5、核心配置类

import com.alibaba.nacos.api.annotation.nacosinjected;
import com.alibaba.nacos.api.exception.nacosexception;
import com.alibaba.nacos.api.naming.namingservice;
import org.springframework.beans.factory.annotation.value;
import org.springframework.context.annotation.configuration;
import javax.annotation.postconstruct;
@configuration
public class nacosconfig {
    @value("${server.port}")
    private int serverport;
    @value("${spring.application.name}")
    private string applicationname;
    @nacosinjected
    private namingservice namingservice;
    @postconstruct
    public void registerinstance() throws nacosexception {
        namingservice.registerinstance(applicationname, "127.0.0.1", serverport);
    }
}

启动成功后查询服务列表:

6、基础api用例

这里演示两个基础用法:上述步骤1的配置内容读取,步骤4的服务列表读取。基于swagger2管理测试接口。

@api("nacos接口管理")
@restcontroller
@requestmapping("/nacos")
public class nacoscontroller {

    @nacosvalue(value = "${myname:null}", autorefreshed = true)
    private string myname;
    @nacosvalue(value = "${project:null}", autorefreshed = true)
    private string project;

    @apioperation(value="查询配置信息")
    @getmapping(value = "/info")
    public string info () {
        return myname+":"+project;
    }

    @nacosinjected
    private namingservice namingservice;

    @apioperation(value="查询服务列表")
    @getmapping(value = "/getserverlist")
    public list<instance> getserverlist (@requestparam string servicename) {
        try {
            return namingservice.getallinstances(servicename) ;
        } catch (exception e){
            e.printstacktrace();
        }
        return null ;
    }
}

四、源代码地址

github·地址
https://github.com/cicadasmile/middle-ware-parent
gitee·地址
https://gitee.com/cicadasmile/middle-ware-parent

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网