SpringBoot整合Nacos

springboot整合Nacos

一 实现Nacos的配置中心

1.1 创建一个maven项目,添加依赖,删除src文件

 <groupId>com.qc.cloud.demo</groupId>
  <artifactId>cloud-master</artifactId>
  <version>1.0</version>
  <modules>
    <module>cloud-config</module>
    <module>cloud-regist</module>
    <module>cloud-consumer</module>
  </modules>
  <packaging>pom</packaging>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.2.RELEASE</version>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <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>2.2.3.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>


  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- lombok依赖 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
      <scope>provided</scope>
    </dependency>
    <!-- devtools -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

1.2 新建nacos-config模块,新增依赖

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

1.3 在resource文件夹下新建bootstrap.yml文件,配置nacos集群

##项目端口
server:
  port: 10010
spring:
  application:
    #指定当前服务名字
    name: nacos-config
  cloud:
    nacos:
      #连接Nacos集群
      config:
      	##集群代理地址(nginx代理地址)
        server-addr: 192.168.92.145:80
        ##名称
        name: ${spring.application.name}
        ##nacos配置中的namespace
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2
        ##文件后缀
        file-extension: yml
        ##群组
        group: DEFAULT_GROUP

1.4 新建一个controller类来做接口测试

@RestController
@RequestMapping("config")
@RefreshScope
public class ConfigController {


    @Value("${name}")
    private String name;


    @GetMapping("/refresh")
    public String getConfigName(){

        return "your name is:"+name;
    }

}

1.5 在nacos配置中心进行配置管理

image-20220216173603270

image-20220216173803701

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-STjdKyeL-1652431064023)(https://raw.githubusercontent.com/linglongQaQ/cloudimg/master/img/image-20220216174516349.png)]

##通过修改name的值,请求接口地址,name值时动态变化的
http://localhost:10012/config/refresh=

二 实现nacos的服务注册

2.1 新建一个模块,修改pom文件

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

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

2.2 新建一个项目的配置文件

## 端口
server:
  port: 10011
## 项目名
spring:
  application:
    name: nacos-regist
  cloud:
    nacos:
      discovery:
      	##nacos地址
        server-addr: 192.168.92.145:80
        ##命名空间
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2

2.3 启动项目,在nacos的控制台中发现多了一个服务,表明服务注册成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9yp1yQi-1652431064024)(https://raw.githubusercontent.com/linglongQaQ/cloudimg/master/img/image-20220216180302097.png)]

三 实现nacos的服务消费

3.1 新建一个模块,修改pom文件

   		<!-- 服务发现-->
		<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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

3.2 新建项目配置文件

server:
  port: 10012

spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.92.145:80
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2

3.3 在注册服务nacos-regist中新增一个测试接口

@RestController
@RequestMapping("regist")
public class NacosRegisterController {


    @GetMapping("say")
    public String sayHi(@RequestParam String name){

        return "Hi "+ name;
    }

}

3.4 在服务消费端新增一个服务发现的client

// 服务名称为服务注册模块的名称
@FeignClient("nacos-regist")
public interface NacosFeignClient {

    //路径为3.3测试接口的路由
    @GetMapping("regist/say")
    String say(@RequestParam  String name);
}

3.5 服务调用

@RestController
@RequestMapping("consumer")
public class NacosConsumerController {

    @Autowired
    private NacosFeignClient nacosFeignClient;

    @RequestMapping("cus")
    public String hello(@RequestParam String name){
        return nacosFeignClient.say(name);
    }
}

3.6 接口测试

http://localhost:10012/consumer/cus?name=jack

注意:

1.springboot 的版本最好不要低于nacos版本,否则会报错

2.springcloud 版本需要进行适配 

3.feign 在传递参数的过程中,有@RequestBody,@RequestParam两种参数类型的注解,是必填项,和springmvc不同,不能进行默认

.say(name);
}
}




3.6 接口测试

```http
http://localhost:10012/consumer/cus?name=jack

注意:

1.springboot 的版本最好不要低于nacos版本,否则会报错

2.springcloud 版本需要进行适配 

3.feign 在传递参数的过程中,有@RequestBody,@RequestParam两种参数类型的注解,是必填项,和springmvc不同,不能进行默认

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值