一、什么是nacos

nacos支持基于dns和基于rpc的服务发现,可以作为springCloud的注册中心、动态配置服务、动态dns服务。

nacos注册中心分为server和client,server采用java编写,为client提供注册发现与配置服务。

二、快速使用

下载中间件:https://nacos.io/zh-cn/docs/quick-start.html

SpringBoot如何整合nacos详解

因为推荐使用的是2.0.1版本,我这里下载2.0.1版本。

SpringBoot如何整合nacos详解

注意:下载文件放在英文目录下

SpringBoot如何整合nacos详解

三、启动nacos

解压nacos-server-2.0.1.zip文件

SpringBoot如何整合nacos详解

双击启动

SpringBoot如何整合nacos详解

可以看到启动报错了,报错原因是默认启动的是集群模式,这里我先改为单机模式。

打开startup.cmd,第26行

SpringBoot如何整合nacos详解

此处改为standalone即可

重新启动,启动成功

SpringBoot如何整合nacos详解

访问:http://localhost:8848/nacos/

SpringBoot如何整合nacos详解

至此,nacos启动就完成了。默认用户名和密码都是nacos。

四、项目整合nacos

第一步:引入nacos依赖包

<!-- 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>

第二步:配置文件增加nacos服务地址

spring.application.name=NACOS-SERVER
server.port=10010
 
nacos.config.server-addr=127.0.0.1:8848
nacos.discovery.server-addr=127.0.0.1:8848

第三步:启动类增加注解@NacosPropertySource

@SpringBootApplication
@NacosPropertySource(dataId = "SERVER_ID",autoRefreshed = true)
public class NacosServerApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(NacosServerApplication.class, args);
    }
 
}

第四步:增加nacos配置类

@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);
    }
}

启动项目,访问:http://localhost:8848/nacos

SpringBoot如何整合nacos详解

至此,springBoot整合nacos就完成了。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。