当前位置:   article > 正文

【Spring Cloud】eureka_eureka 版本确定

eureka 版本确定

一、关于版本的选择

在使用springcloud的时候,经常会因为一些版本的问题导致搭建项目受阻。其实spring提供了一个简单的springcloud和springboot版本选择的接口,直接访问该接口可以很明确的看到相互依赖的版本
https://start.spring.io/actuator/info
访问该接口,出现以下内容:
在这里插入图片描述
这样就可以很容易的看到到底springboot和哪个版本的springcloud搭配使用才是合理的。

二、eureka服务治理中心

1、POM文件

首先我们再父工程定义好springboot和springcloud的版本,方便我们在子项目中管理jar包的导入,最后我们使用三个工程来演示eureka的服务治理和发现,结构如下
在这里插入图片描述

<?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.lwb</groupId>
    <artifactId>lwb-project</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0-SNAPSHOT</version>

    <parent>
        <!--版本判断 https://start.spring.io/actuator/info-->
        <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>
        <!-- 编译时的编码 -->
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>
        <java.version>8</java.version>
    </properties>

    <modules>
    	<!--这是父工程下的三个子项目-->
        <module>lwb-spring-eureka-server</module>
        <module>lwb-spring-eureka-client-order</module>
        <module>lwb-spring-eureka-client-goods</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

这里选择的springboot版本是2.3.2.RELEASE,springcloud的版本是Hoxton.SR12,这也是从第一章的接口信息中判断的。
下面开始创建eureka服务端项目lwb-spring-eureka-server,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>lwb-project</artifactId>
        <groupId>com.lwb</groupId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>lwb-spring-eureka-server</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>

        <!--启动spring的基础组件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--eureka server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

解释各个包的作用:
spring-boot-starter-web:springboot的web工程必要依赖,没有个包无法正常使用
spring-boot-starter-actuator:springboot提供的监控相关的包,后面会使用到
spring-cloud-starter-netflix-eureka-server:eureka服务端核心包,做eureka服务端,这个包就够了

2、配置文件application.yml

# 启动端口
server:
  port: 8080
# 服务名称,非常重要
spring:
  application:
    name: spring-eureka

eureka:
  client:
  # 是否把当前服务注册到eureka中,因为该项目就是eureka注册中心,因此没有必要自己注册自己,设置为false,表示不注册
    register-with-eureka: false
 # 表示是否从注册中心同步注册的服务,由于该项目是注册中心,没有必要拉取服务列表,因此设置为false   
    fetch-registry: false
 # 服务注册域地址,以后的服务要注册到注册中心中,就是配置这个地址   
    service-url:
      defaultZone: http://127.0.0.1:8080/eureka
 # 是否开启自我保护,一般来说测试环境没有必要开启,正式环境建议开启     
  server:
    enable-self-preservation: true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3、主启动类

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

/**
 * @author 隐市高手
 * @date 2022/5/21 15:09
 */
@SpringBootApplication
@EnableEurekaServer
public class AppEurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(AppEurekaServer.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

主启动类和一般的一般的springboot主启动类没有多大区别,唯一多了个注解@EnableEurekaServer,表示开启注册中心。

4、启动结果

启动主启动类,访问http://localhost:8080,得到eureka的管理页面:
在这里插入图片描述
需要注意的是,我们再启动的时候,有这样一个日志:
在这里插入图片描述
我经常犯的一个错误就是认为这个打印的地址就是访问eureka主页的地址,然后用这个地址去浏览器访问,总是得到404,然后各种百度找问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/794164
推荐阅读
相关标签