作者:杀手也热血_949 | 来源:互联网 | 2024-09-27 14:57
SpringCloud+SpringBoot项目搭建(一)Eureka-SpringCloud+SpringBoot项目搭建(一)Eureka基础SpringBoot+Eur
基础SpringBoot+Eureka
配置环境
版本环境:
JDK:1.8
maven:3.5.2
springboot:2.4.4
springcloud:2020.0.2
创建Maven项目
创建一个空的maven项目并配置pom:
<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.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.4.4.RELEASEversion>
<relativePath/>
parent>
<groupId>com.dongyuegroupId>
<artifactId>springcloud-demoartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>pompackaging>
<name>springcloud-demoname>
<description>springcloud-demodescription>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<java.version>1.8java.version>
<spring-boot.version>2.4.4spring-boot.version>
<spring-cloud.version>2020.0.2spring-cloud.version>
properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>${spring-cloud.version}version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
project>
Eureka
Euraka是Spring Cloud集合中一个组件,它是对Euraka的集成,用于服务注册和发现。Eureka是Netflix中的一个开源框架。它和 zookeeper、Consul一样,都是用于服务注册管理的。
Eureka基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移
在 Spring Cloud 微服务架构中通常用作注册中心
我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client
搭建eureka的服务
建立Eureka-server模块
添加pom:
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-eureka-serverartifactId>
dependency>
配置properties
application.properties
server.port=7070
spring.profiles.active=dev
spring.application.name=@pom.artifactId@
#自我保护机制
eureka.server.enable-self-preservation=false
eureka.instance.hostname=localhost
#表示是否将自己注册到Eureka Server
eureka.client.registerWithEureka=false
#表示是否从Eureka Server获取注册信息
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
启动中加入@EnableEurekaServer
至此euraka的服务已搭建完毕,接下来搭建客户端client.
搭建eureka的客户端client
客户端client 提供真正服务的角色的配置, 它提供服务 在 服务注册方server (注册中心)进行注册
创建服务模块
添加pom:
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
配置properties
application.properties
server.port=7071
spring.profiles.active=dev
spring.application.name=@pom.artifactId@
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:7070/eureka/
启动添加@EnableEurekaClient
访问配置的eureka路径出现配置的客户端,至此客户端添加完成
设置eureka访问密码
设置密码需要用到spring-boot-starter-security,服务模块pom中添加
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-securityartifactId>
dependency>
properties中加入配置
#是否开启密码服务
spring.security.basic.enabled=true
#用户
spring.security.user.name=user
#密码
spring.security.user.password=springclouddemo
修改properties中eureka.client.serviceUrl.defaultZone地址
eureka.client.serviceUrl.defaultZOne=http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka
修改properties
#用户
spring.security.user.name=user
#密码
spring.security.user.password=springclouddemo
eureka.client.serviceUrl.defaultZone=http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka
访问路径
至此密码创建完成
填坑
Spring Cloud 2.0 以上的security默认启用了csrf检验,要在eureka server端配置security的csrf检验为false。
在服务端添加代码
@EnableWebSecurity
static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.csrf().disable();
}
}
如图