我在 docker 上使用 eureka 构建了一个 spring-server 和一个 spring-client,并尝试将客户端连接到服务器。当我在我的中尝试这个时build.gradle:
docker {
maintainer = 'Me'
baseImage = 'java:8'
}
distDocker {
exposePort 8080
setEnvironment 'JAVA_OPTS', '-Dspring.profiles.active=docker'
}
Run Code Online (Sandbox Code Playgroud)
一切正常。
但我想使用Dockerfile我写的,所以我使用buildDocker而不是distDocker这样使用它:
task buildDocker(type: Docker, dependsOn: build) {
dockerfile = file('src/main/docker/Dockerfile')
doFirst {
copy {
from jar
into stageDir
}
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个Dockerfile:
FROM java:8
ADD myjar-1.0.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
Run Code Online (Sandbox Code Playgroud)
这总是会导致
连接被拒绝错误或更准确地说是 ClientHandleException:连接到http://localhost:8761被拒绝
我实在不明白问题出在哪里?如果我不尝试连接到服务器,两种方法都可以工作,但如果我尝试连接则只能distDocker工作。
我有一个尤里卡服务器运行 application.yml 看起来像
server:
port: 8761
eureka:
client:
registerWithEureka: false
fetch-registry: false
server:
wait-time-in-ms-when-sync-empty: 5
enable-self-preservation: false
Run Code Online (Sandbox Code Playgroud)
在客户端,我有
eureka:
instance:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 1
lease-expiration-duration-in-seconds: 1
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
Run Code Online (Sandbox Code Playgroud)
我特意放了
lease-renewal-interval-in-seconds: 1
lease-expiration-duration-in-seconds: 1
Run Code Online (Sandbox Code Playgroud)
而不是租约到期持续时间(以秒为单位)的默认值 90。
然而,Eureka 注销客户端需要接近 30 秒的时间,这与默认情况下注册客户端所需的时间类似,而无需显式添加 wait-time-in-ms-when-sync-empty: 5 eureka服务器的application.yml
有没有办法加快注销过程?看来我的加速尝试没有奏效
我正在研究 Spring 云框架。所以我的每个微服务都必须在 Eureka 服务器上注册,所以 Eureka 知道唯一的 id 或应用程序名称。
(1) 我必须在 Eureka 注册多个相同微服务的实例,我该如何实现?微服务部署在 Cloud Foundry 中。
(2) 当所有来自同一个微服务的实例都注册到 Eureka 时,Eureka 如何知道哪些实例是活动的,哪些不是?Eureak 知道的频率以及 Eureka 如何获取这些信息。
spring microservices spring-cloud netflix-eureka spring-cloud-netflix
我在 pom.xml 上使用下面的内容,但由于错误我无法启动应用程序我不想降级 spring boot starter 父版本。有什么解决方案吗?
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
</parent>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
org.springframework.beans.factory.BeanCreationException:创建在类路径资源[org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]中定义的名为“configurationPropertiesBeans”的bean时出错:合并bean定义的后处理失败;嵌套异常是 java.lang.IllegalStateException:无法从 ClassLoader [sun.misc.Launcher$AppClassLoader@659e0bfd] 内省类 [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]
maven spring-boot spring-cloud netflix-eureka spring-cloud-netflix