SpringCloud+SpringBoot 專案搭建 (一) Eureka
- 基礎SpringBoot+Eureka
- 配置環境
- 創建Maven專案
- Eureka
- 搭建eureka的服務
- 搭建eureka的客戶端client
- 設定eureka訪問密碼
- 填坑
基礎SpringBoot+Eureka
配置環境
版本環境:
JDK:1.8
maven:3.5.2
springboot:2.4.4
springcloud:2020.0.2
創建Maven專案
創建一個空的maven專案并配置pom:
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dongyue</groupId>
<artifactId>springcloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>springcloud-demo</name>
<description>springcloud-demo</description>
<!--設定版本號-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<spring-boot.version>2.4.4</spring-boot.version>
<spring-cloud.version>2020.0.2</spring-cloud.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>
</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.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</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.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</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
同理client模塊
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
修改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();
}
}
如圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/274884.html
標籤:其他
上一篇:mybatis學習日志(一)
下一篇:微信小程式筆記(三)自定義組件
