Eureka配置及问题集
By rambo
1.maven 服务端:
<?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.hxdl</groupId>
<artifactId>hxdl-eureka2</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka管理模块</name>
<description>EurekaServer project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.服务端yml配置:
spring:
application:
name: eureka-server2
security:
user:
name: eureka
password: eureka
### 服务器配置
server:
port: 10004
servlet:
context-path: /eureka2
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false #是否向服务注册中心注册自己
fetchRegistry: false #是否检索服务
serviceUrl: #服务注册中心的配置内容,指定服务注册中心的位置
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka2/eureka
3.maven 客户端:
<?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.hxdl</groupId>
<artifactId>hxdl-eureka2</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>eureka管理模块</name>
<description>EurekaServer project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4.服务端yml配置:
### 服务器配置
server:
port: 8081
servlet:
context-path: /hxdl
### spring配置
spring:
application:
name: hxdl-manage
main:
allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
## jpa配置
jpa:
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate.dialect: com.hxdl.framework.mysql.MySQLDialectUTF8
hibernate.format_sql: true
hibernate.use_sql_comments: false #是否显示注释
open-in-view: true
## eureka配置
eureka:
instance:
#instance-id: ${spring.application.name}
#prefer-ip-address: true
hostname: localhost
client:
serviceUrl:
defaultZone: http://eureka:eureka@localhost:10004/eureka2/eureka
register-with-eureka: true
fetch-registry: false
问题
1.com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
解决:新版的security默认启用了csrf检验,要在eureka服务端那边配置security的csrf检验为false
在server端,编写WebSecurityConfigurer类,再重启server和client
package com.hxdl.manage;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* ClassName: WebSecurityConfigurer <br/>
* Function: 新版的security默认启用了csrf检验,要在eureka服务端那边配置security的csrf检验为false. <br/>
* Reason: TODO ADD REASON(可选). <br/>
* date: 2019年7月31日 下午4:06:17 <br/>
*
* @author bobolnear@163.com
*/
@EnableWebSecurity
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
super.configure(http);
}
}
记录:
| 时间 | 作者 | 内容 | 本版 |
|---|---|---|---|
| 2019-07-31 | bobolnear | 创建 | V1.0 |
苔花如米小,也学牡丹开。
版权声明:本文为原创文章,转载请附上链接!
本文详细介绍Eureka服务端和客户端的Maven配置,以及YAML配置文件的设置。涵盖服务端安全配置、客户端注册与发现流程,并解决TransportException错误,通过禁用CSRF检查确保服务正常运行。
1115

被折叠的 条评论
为什么被折叠?



