SpringBoot 引入nacos 【最新 | 可运行】

SpringBoot 引入nacos

首先要了解在 Springboot 中只支持那些 Springboot 的版本(我真的被这个搞死了),可以如下图参考:

在这里插入图片描述

下面我们就开始吧

下载 Nacos

nacos 下载地址,这里可以选择你要下载的版本,我选择下载了2.2.2,在下载的时候根据自己的电脑选择合适的压缩包

我这里演示 windows 版本

下载好以后就可以解压,放到一个无中文的目录(千万)

然后点开nacos目录到达bin目录里面就是可运行的文件了。

如果想要单节点运行(一般我们自己学习都是单节点,但是默认启动多节点就会报错),请运行下列命令:

.\startup.cmd -m standalone

命令的运行是在 bin 目录下,如果无权限,请用管理员的终端再次尝试。

在这里插入图片描述

启动好后:

在这里插入图片描述

点击上图出现的网址可以进入(如果要输入密码默认都是nacos):

在这里插入图片描述




Springboot 中引入

引入依赖管理

这个依赖管理包含了 Springboot 的版本,springcloud 的版本,springalibabacloud 的版本。引入依赖管理是便于后期加入依赖的时候不用关注版本本身,只需要把依赖引入就好了。

我这里 springboot 的版本是 2.6.11(请严格按照开始的那张图对应版本)

在你的 pom.xml 文件中引入:

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

</dependencyManagement>

引入使用的依赖

我们是要使用的是 nacos 的服务注册,所以我们引入 discovery 的启动包,以及要想启动我们要引入 springcloud 的 bootstrap 包。

<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-bootstrap</artifactId>
</dependency>

在 application.yml 中填写配置

这里主要就是配置 nacos 服务器的地址,以及配置我们整个服务的名称。

spring:
  application:
    name: nacos-config-example
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

在启动类中添加允许发现的注解

其实就是注解 @EnableDiscoveryClient

直接看代码

@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserServiceApplication.class, args);
    }

}



然后重新启动就可以啦

在这里插入图片描述

说明:在SpringBoot 2.4.x的版本之后,对于bootstrap.properties/bootstrap.yaml配置文件(我们合起来成为Bootstrap配置文件)的支持,需要导入如下的依赖。由于SpringCloud 2020.*以后的版本默认禁用了bootstrap,导致读取配置文件时读取不到该属性。

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

使用

注意:在 Spring Cloud Nacos 2021 以后就没有在默认使用 Ribbon 作为负载均衡器了,而且在Cloud官网中也推荐使用LoadBalancer 作为负载均衡器,对此先引入依赖:

<!--loadbalancer负载均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency> 

建立一个类似的工程,前面的引入过程一致。

最终在使用的时候如下:

package com.xwhking.orderservice.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController
@RequestMapping("/order")
public class TestController {
    @Resource
    private RestTemplate restTemplate;


    @Resource
    private LoadBalancerClient loadBalancerClient;

    @GetMapping("/test/{id}")
    public String getTest(@PathVariable("id") String id){
        String url = "http://userservice/user/getOne/"+id;
        ServiceInstance serviceInstance = loadBalancerClient.choose("userservice");
        url = serviceInstance.getUri().toString()+"/user/getOne/"+id;
        String result1 = restTemplate.getForObject(url, String.class);
        return result1+"\n";
    }
}

好文推荐:SpringBoot2.6.11 + Spring Cloud Alibaba + Nacos 搭建 - MyDistance - 博客园 (cnblogs.com)

如果有这些错误提示:

  • org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set
  • 或者启动不了,按这篇文章来一遍,几乎都可以啦
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Spring Boot引入Nacos,你需要进行以下几个步骤: 1. 配置application.properties或者bootstrap.properties文件,其中包括设置服务的名字、Nacos配置中心的地址、编码方式、组名子、配置文件后缀等。可以使用`spring.application.name`来设置服务的名字,使用`spring.cloud.nacos.config.server-addr`来设置Nacos配置中心的地址,使用`spring.cloud.nacos.config.encode`来设置编码方式,使用`spring.cloud.nacos.config.group`来设置组名子,使用`spring.cloud.nacos.config.file-extension`来设置配置文件后缀。你还可以使用`spring.cloud.nacos.config.shared-dataids`来加载多个配置文件,使用`spring.cloud.nacos.config.refreshable-dataids`来刷新加载其他环境的配置文件。 2. 在启动类上添加`@EnableDiscoveryClient`注解,以便让应用成为一个服务发现的客户端。同时,还需要添加`@SpringBootApplication`注解。例如: ```java @EnableDiscoveryClient @SpringBootApplication public class TestDemoApplication { public static void main(String[] args) { SpringApplication.run(TestDemoApplication.class, args); } } ``` 3. 配置application.properties文件,包括设置服务的名字、服务集群名字和注册中心地址。可以使用`spring.application.name`来设置服务的名字,使用`spring.cloud.nacos.discovery.cluster-name`来设置服务集群名字,使用`spring.cloud.nacos.discovery.server-addr`来设置注册中心地址。 通过以上步骤,你就可以在Spring Boot中成功引入Nacos了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot使用Nacos](https://blog.csdn.net/watson2017/article/details/124044432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwhking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值