代码之家  ›  专栏  ›  技术社区  ›  maciejka

在尤里卡注册服务存在问题

  •  0
  • maciejka  · 技术社区  · 5 年前

    我有以下eureka服务器配置 波姆。xml

    <parent>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-parent</artifactId>
        <version>Angel.SR6</version>
        <relativePath />
    </parent>
    
    <properties>
        <java.version>11</java.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    

    这是eureka客户端的配置。 波姆。xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.microservices</groupId>
    <artifactId>account-service</artifactId>
    <version>1.0</version>
    <name>account-service</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
        <java.version>11</java.version>
        <skipTests>false</skipTests>
        <skipITs>${skipTests}</skipITs>
        <skipUTs>${skipTests}</skipUTs>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>21.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>
    </dependencies>
    

    应用尤里卡客户的yml:

    eureka:
      client:
        serviceUrl:
          default:
            zone: http://user:pass@localhost:8761/eureka/
      instance:
        hostname: localhost
        password: pass
    security:
      user:
        username: user
        password: pass
    

    Eureka服务器正常启动。 然而,当我运行eureka客户端时,这是启动过程的结果。 在客户端:

    [WARN ] 2021-02-21 21:22:28 [DiscoveryClient-InstanceInfoReplicator-0] RetryableEurekaHttpClient - Request execution failure with status code 401; retrying on another server if available
    [WARN ] 2021-02-21 21:22:28 [DiscoveryClient-InstanceInfoReplicator-0] DiscoveryClient - DiscoveryClient_ACCOUNT-SERVICE/localhost:account-service - registration failed Cannot execute request on any known server
    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
    

    在服务器端:

    2021-02-21 21:22:28.541  INFO 5208 --- [nio-8761-exec-1] o.s.b.a.audit.listener.AuditListener     : AuditEvent [timestamp=Sun Feb 21 21:22:28 CET 2021, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={type=org.springframework.security.access.AccessDeniedException, message=Access is denied}]
    

    如果eureka客户注册过程未获得401结果的授权,但我提供了正确的凭证,这会是什么问题?

    0 回复  |  直到 5 年前
        1
  •  0
  •   blah    5 年前

    为了让Eureka工作,您需要将一些配置放在适当的位置。 在您的eureka服务器服务上,您需要使用@EnableEurekaServer注释启用eureka服务器,如下所示:

    @SpringBootApplication
    @EnableEurekaServer
    public class NamingServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(NamingServerApplication.class, args);
        }
    
    

    在客户端上,需要在应用程序中配置应用程序名称。属性,比如:

    spring.application.name=my-application
    

    那应该管用!别忘了改变你的spring云版本!