您现在的位置是:首页 >技术杂谈 >spring cloud搭建(eureka)网站首页技术杂谈

spring cloud搭建(eureka)

寒山李白 2024-07-16 18:01:02
简介spring cloud搭建(eureka)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习新东西是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


spring cloud 相关组件搭建(建议顺序):


一、spring cloud简介

  • springcloud是spring体系的简化版。
  • spring cloud是基于spring boot实现的管理项目的工具包。
  • spring cloud利用spring boot的开发便利性简化了分布式系统的开发。
  • springcloud微服务架构可以把一个项目拆分为多个微服务,每个微服务相对独立(包括技术选型独立、开发独立、部署独立、运维独立),但多个服务间又相互配合协调,完成整体的项目,完整服务于用户。
  • springcloud有一系列框架,如服务注册中心、配置中心、消息总线、负载均衡、断路器、数据监控等。
  • spring cloud通过spring boot来启动和部署。

二、开发环境:

JDK版本:1.8
maven版本:3.9.0
开发工具:IDEA社区版ideaIC-2018.3
项目框架:spring boot 版本为 2.7.3 springboot搭建传送门spring cloud 版本为 2021.0.5

三、创建并配置父项目spring_cloud_demo

创建一个maven项目,作为父项目,进行配置pom
具体步骤如下:

1. 创建项目

File–>New–>Project…
在这里插入图片描述

2. 删除src包

用不到这个,右键Delete即可
在这里插入图片描述

3. 配置父项目pom.xml

3.1 父项目所需依赖

    <!--spring boot版本控制-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
    </parent>
    <!--父类依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!--spring cloud版本控制-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

注:这里经常出现spring boot和spring cloud版本兼容问题,上面用的两个版本是兼容的,如果使用其他版本遇到兼容问题可参考这篇文章解决:
spring boot和spring cloud版本兼容问题解决

3.2 父项目完整pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.cloud</groupId>
    <artifactId>spring_cloud_demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>spring_cloud_eureka</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <!--spring boot版本控制-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
    </parent>
    <!--父类依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!--spring cloud版本控制-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
</project>

到此父项目就创建并配置完成


四、创建并配置子项目eureka

eureka介绍

  • eureka是一个基于REST的服务,通过它可以将服务注册以及获取服务信息,可以实现负载均衡和中间层服务故障转移的功能。
  • 与zookeeper相似,可以作为服务注册中心。
  • 服务提供者将服务注册到eureka,服务的消费者通过eureka获取服务信息后调用服务提供者。

1.创建子项目eureka

右键spring_cloud_demo父项目–New–Module
在这里插入图片描述
填写信息并创建
在这里插入图片描述

2. 配置Eureka的pom.xml

2.1 Eureka所需依赖

    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--spring cloud eureka server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

2.2 eureka完整pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring_cloud_demo</artifactId>
        <groupId>com.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>spring_cloud_eureka</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!--spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--spring cloud eureka server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

</project>

3. 创建eureka包结构

创建两个文件
在java包下创建com.eureka包,在eureka包中创建Eureka服务启动类EurekaApplication.java
在resources包下创建Eureka配置文件application.yml
在这里插入图片描述

4. 创建Eureka的启动类

注意,在启动类上添加@EnableEurekaServer注解开启Eureka
EurekaApplication.java

package com.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * @ClassDescription: eureka启动项
 * 注解@EnableEurekaServer是用来开启注册中心服务的
 * @Author:李白
 * @Date:2023/5/30 17:08
 */
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

5. 配置Eureka服务的yml文件

application.yml

#Tomcat
server:
  port: 8001
  
#Spring
spring:
  application:
    #这里是项目别名,当该服务被注册到注册中心后,会以此名称显示该服务
    name: Eureka_app

#Eureka
eureka:
  #客户端
  client:
    #是否将服务注册到eureka客户端,默认是打开的,可在注册中心查看已注册的服务
    register-with-eureka: false
    #是否发现注册中心的已注册的服务信息,默认是打开的,可以获取已注册到eureka中的服务的信息列表
    fetch-registry: false
    #服务地址
    service-url:
      #默认的服务地址,eureka注册中心的地址,可以访问它查看已注册的服务
      defaultZone: http://localhost:${server.port}/eureka/

6. 启动Eureka服务

启动后控制台大概这个样子就是成功了
在这里插入图片描述

8. 查看注册中心

根据自己配置的端口,访问以下地址即可查看注册中心

http://localhost:8001

已注册的服务实例会展示在Instances currently registered with Eureka列表下
在这里插入图片描述
以上就是spring cloud搭建中的Eureka部分


风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。