专业的编程技术博客社区

网站首页 > 博客文章 正文

(一)SpringCloudAlibaba入门-注册中心

baijin 2024-08-29 12:28:04 博客文章 2 ℃ 0 评论

环境准备

注册中心:nacos

jdk版本:jdk17

Spring Cloud Alibaba版本组合:

  • Spring Boot 3.0.10
  • Spring Cloud 2022.0.4
  • Spring Cloud Alibaba 2022.0.0.0

项目结构介绍

|-- demo-framework
    |-- demo-provider-service(服务提供方)

demo-framework:父级pom,负责进行依赖管理、

demo-provider-service:服务提供方,本案例中将用于集成注册中心

步骤一:确认nacos已启动

访问naco地址(http://127.0.0.1:8848/nacos)可以正常访问!


步骤二:创建demo-framework工程

该工程为pom类型,负责管理整个工程的依赖以及自定义属性,仅有pom文件。

pom.xml

<artifactId>demo-framework</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>demo-provider-service</module>
    </modules>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- 目前最新版本 jdk要求17-->
        <spring.cloud.alibaba.version>2022.0.0.0</spring.cloud.alibaba.version>
        <spring.cloud.version>2022.0.4</spring.cloud.version>
        <spring.boot.version>3.0.10</spring.boot.version>
        <alibaba.fastjson2.version>2.0.39</alibaba.fastjson2.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- spring boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 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-->
            <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>

步骤三:创建demo-provider-service模块

web服务,引入注册中心。

  1. pom.xml中引入spring-cloud-starter-alibaba-nacos-discovery依赖
 <!-- nacos服务发现 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. application.yml引入注册中心相关信息
spring:
  application:
    name: provider-service
  cloud:
    nacos:
      discovery:
        enabled: true
        username: nacos
        password: nacos
        server-addr: 127.0.0.1:8848
  1. 应用启动类

ProviderServiceApplication.java

package demo.provider.service;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderServiceApplication.class,args);
    }
}

运行ProviderServiceApplication即可启动应用。

结果验证

访问nacos,菜单-服务列表,可以看到provider-service有实例在线即服务注册成功。



拓展:省略注解@EnableDiscoveryClient

可以通过在application文件中配置spring.cloud.discovery.enabled=true来省略启动类上注解@EnableDiscoveryClient,以起到同样的效果。

拓展:自动装配原理

  1. 通过查看依赖spring-cloud-starter-alibaba-nacos-discovery中META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件内容可知相关自动装配类。
com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration
com.alibaba.cloud.nacos.endpoint.NacosDiscoveryEndpointAutoConfiguration
com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration
com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration
com.alibaba.cloud.nacos.discovery.NacosDiscoveryHeartBeatConfiguration
com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration
com.alibaba.cloud.nacos.discovery.configclient.NacosConfigServerAutoConfiguration
com.alibaba.cloud.nacos.loadbalancer.LoadBalancerNacosAutoConfiguration
com.alibaba.cloud.nacos.NacosServiceAutoConfiguration
com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表