当前位置:网站首页>Nacos做注册中心使用

Nacos做注册中心使用

2022-07-27 09:21:00 Charge8

上一篇了解了 Nacos并安装了 nacos-server服务。接下来简单搭建一个微服务项目,使用 Nacos做注册中心。

一、项目搭建

项目版本选型:

Spring Cloud Alibaba版本选型:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

这里选择:

在这里插入图片描述

1、创建父模块

在 pom.xml中管理版本。

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>14</maven.compiler.source>
    <maven.compiler.target>14</maven.compiler.target>
    <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
    <spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

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

  <dependencyManagement>
    <dependencies>
      <!-- spring-cloud -->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring-cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!-- spring-cloud-alibaba-dependencies -->
      <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>

2、创建order服务

配置服务提供者 order服务,服务提供者可以通过 Nacos 的服务注册发现功能将其服务注册到 Nacos server 上。

2.1 引入依赖

当前项目pom中引入nacos依赖

        <!-- nacos服务注册与发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2.2 配置文件

配置nacos注册中心

server:
  port: 18082
  servlet:
    context-path: /

spring:
  application:
    name: app-order  #微服务名称

  #配置nacos注册中心地址
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.xxx.xxx:8848
        #namespace: f16bcf35-810d-4b5b-a936-bd2abb8582a3
        #cluster-name: SH

在这里插入图片描述

更多配置:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery

3、创建user服务

配置服务消费者user服务,服务消费者可以通过 Nacos 的服务注册发现功能从 Nacos server 上获取到它要调用的服务。

3.1 引入依赖

当前项目pom中引入依赖

        <!-- nacos服务注册与发现 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

3.2 配置文件

配置nacos注册中心

server:
  port: 18081
  servlet:
    context-path: /app-user

spring:
  application:
    name: app-user  #微服务名称

  #配置nacos注册中心地址
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.xxx.xxx:8848
        #namespace: f16bcf35-810d-4b5b-a936-bd2abb8582a3
        #cluster-name: SH

3.3 使用RestTemplate进行服务调用

1)开启 @LoadBalanced 与 Ribbon 的集成。

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
    
        return new RestTemplate();
    }

2)使用 RestTemplate进行服务调用

写一个 controller调用。

 	@RequestMapping(value = "/findOrderByUserId/{id}")
    public R findOrderByUserId(@PathVariable("id") Integer id) {
    
        log.info("根据userId:" + id + "查询订单信息");
        
        String url = "http://app-order/order/findOrderByUserId/" + id;
        R result = restTemplate.getForObject(url, R.class);
        return result;
    }

4、启动user和order服务

在 nacos管理端界面查看是否成功注册。

在这里插入图片描述

在 nacos管理端,也可以在指定一些配置,比如,权重,分组,集群等。

在这里插入图片描述

5、测试访问user服务

浏览器访问测试controller,测试服务调用ok。

到此,Nacos做注册中心使用就OK了。Namespace 和 Group配置项使用场景也是蛮多的,自行了解。

– 求知若饥,虚心若愚。

原网站

版权声明
本文为[Charge8]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42402854/article/details/125962107