2.springcloud alibaba服务注册

  • Post author:
  • Post category:其他




一.创建项目基本结构

本项目主要是构建一个简单的图书管理系统,基于springcloud alibaba这一套相关的技术和知识来搭建系统,整体的项目的骨架如下图所示:

在这里插入图片描述

如上图所示,结构很简单,包含了gateway,业务系统,客户端,后端管理系统等模块。本系统基于springcloud alibaba一套技术架构,大致的模块如下:

  • library-clien 客户端系统
  • library-common 公共模块,包含一些通用工具等
  • library-gateway 网管系统
  • library-op 后台管理系统
  • library-service 业务系统



二.添加相关依赖

springcloud alibaba服务注册需要在父项目中添加以下依赖,注:完整项目可以参考本套项目源码,地址为:

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <spring.cloud.version>Hoxton.SR9</spring.cloud.version>
    <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
</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>${spring.cloud.alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后在子模块library-gateway(其他需要注册到nacos中的服务也要添加这个依赖)中添加以下依赖,用于服务注册

<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-gateway</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-openfeign-core</artifactId>
</dependency>



三.服务注册

首先启动类上要加@SpringBootApplication和@EnableDiscoveryClient注解,@SpringBootApplication是springboot的核心注解,开启了自动配置等一系列功能,@EnableDiscoveryClient则是标记可以注册到注册中心,发现其他服务以及被其他服务发现。

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class LibraryGatewayApplication {

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

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

}

配置yml文件如下:

server:
  port: 8888
spring:
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST}:${NACOS_PORT}
      config:
        server-addr: ${NACOS_HOST}:${NACOS_PORT}
        file-extension: yml
      username: nacos
      password: nacos
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/db_library?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
    username: root
    password: root
  application:
    name: library-gateway

注意,这里有几个占位符



N

A

C

O

S

H

O

S

T

{NACOS_HOST},







N


A


C


O



S










H


















O


S


T









{NACOS_PORT},{MYSQL_HOST},${MYSQL_PORT},这几个参数放在环境变量中或者当作启动参数传进来即可。然后就可以启动服务了,服务启动完毕,可以查看nacos上注册的服务了,over

在这里插入图片描述



版权声明:本文为qq_24689783原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。