赞
踩
在使用springcloud的时候,经常会因为一些版本的问题导致搭建项目受阻。其实spring提供了一个简单的springcloud和springboot版本选择的接口,直接访问该接口可以很明确的看到相互依赖的版本
https://start.spring.io/actuator/info
访问该接口,出现以下内容:
这样就可以很容易的看到到底springboot和哪个版本的springcloud搭配使用才是合理的。
首先我们再父工程定义好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>
这里选择的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>
解释各个包的作用:
spring-boot-starter-web
:springboot的web工程必要依赖,没有个包无法正常使用
spring-boot-starter-actuator
:springboot提供的监控相关的包,后面会使用到
spring-cloud-starter-netflix-eureka-server
:eureka服务端核心包,做eureka服务端,这个包就够了
# 启动端口 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
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);
}
}
主启动类和一般的一般的springboot主启动类没有多大区别,唯一多了个注解@EnableEurekaServer
,表示开启注册中心。
启动主启动类,访问http://localhost:8080
,得到eureka的管理页面:
需要注意的是,我们再启动的时候,有这样一个日志:
我经常犯的一个错误就是认为这个打印的地址就是访问eureka主页的地址,然后用这个地址去浏览器访问,总是得到404,然后各种百度找问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。