天天看點

SpringCloud之EurekaClient詳解和可能踩的坑

https://blog.csdn.net/qq_37892957/article/details/88629389 SpringCloud之Eureka Server詳解

https://mp.csdn.net/postedit/88629507 SpringCloud之Eureka Server叢集部署

看下面文章之前,可以看看上面幾篇文章,更多詳情可以檢視博文以往博文。

一、概述

    前面講了SpringEurekaServer的安全校驗配置和Server叢集的配置,下面這篇講講Eureka Client用戶端的配置。

二、項目搭建

2.1 建立一個spring_cloud_eureka_client的項目

SpringCloud之EurekaClient詳解和可能踩的坑

2.2 配置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">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.bean</groupId>
        <artifactId>spring_cloud_dependcy</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../spring_cloud_dependency/pom.xml</relativePath>
    </parent>

    <artifactId>spring_cloud_eureka_client</artifactId>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
        <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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
           

前面這個<parent></parent>标簽 是引入了基礎配置項目 可以看看我前面的那篇部落格 

2.3 配置application.yml

spring:
  application:
    name: spring-cloud-eureka-client
  #由于我們前面的eureka的服務端加入spring securit的驗證配置 是以這裡我們需要加上這個配置資訊來能夠通路
  security:
    user:
      name: root
      password: root
server:
  port: 8761
eureka:
  client:
    service-url:
      #配置eureka服務注冊中心位址 如果eureka server服務注冊中心是叢集部署 隻配置一個其他服務注冊中心也能發現
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka1:8861/eureka/
           

2.4 配置springboot啟動類 加上@EnbaleEurekaClient

@SpringBootApplication
@EnableEurekaClient
public class SpringCloudEurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudEurekaClientApplication.class, args);
    }

}
           

2.5 寫一個測試Controller

/**
* @ClassName UserController
* @Description TODO
* @Author 一葉知秋hwb
* @Date
* @Version 1.0
**/
@RestController
public class UserController {

    @Value("${server.port}")
    private String port;

    @RequestMapping(value = "hi",method = RequestMethod.GET)
    public String sayHi(@RequestParam("message") String message) {
        return "我的" + port + "端口的客戶機,我發送了" + message;
    }
}
           

2.6 運作我們的項目

先運作我們spring_cloud_eureka_server 的服務端項目 再運作我們的用戶端項目

SpringCloud之EurekaClient詳解和可能踩的坑

先運作1再運作3

通路

SpringCloud之EurekaClient詳解和可能踩的坑

 你會發現需要登入,因為我們前面一篇文章給eureka server配置了安全檢查機制,是以會顯示如下這個界面

SpringCloud之EurekaClient詳解和可能踩的坑

輸入你server端配置的spring.security.user和spring.security.password的配置資訊就行

SpringCloud之EurekaClient詳解和可能踩的坑

進入之後你會發現已經注冊成功

我們便可以通路我們的用戶端資訊了

SpringCloud之EurekaClient詳解和可能踩的坑

顯示如下資訊 表示你已經成功通路到你配置的接口資訊了

SpringCloud之EurekaClient詳解和可能踩的坑

三、疑問

3.1 明明感覺配置成功 用戶端項目啟動時卻會報如下錯誤資訊或者說注冊中心注冊不進去的問題。

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

SpringCloud之EurekaClient詳解和可能踩的坑

這個問題可以看看我這篇部落格 已經将這個問題關鍵導緻講清楚了 https://blog.csdn.net/qq_37892957/article/details/88653414

3.2 為什麼我配置完成之後每次通路eureka client用戶端都需要登入賬戶名和密碼。

比如我們剛剛配置的那個eureka client通路localhost:8761/hi?message 每次進入都需要驗證你的安全賬戶和密碼 

具體資訊可以看看我的這篇部落格 已經說明出來了

https://blog.csdn.net/qq_37892957/article/details/88653468

繼續閱讀