这是我的Eureka服务器 application.property
# set port
server.port=8761
# no need to register the server with the server
eureka.client.register-with-eureka=false
# don't need a local copy of the registry
eureka.client.fetch-registry=false
Eureka Server dockerfile
FROM openjdk:8
ADD target/eureka-service.jar eureka-service.jar
EXPOSE 8761
ENTRYPOINT ["java", "-jar", "eureka-service.jar"]
Eureka Client application.property
eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
Eureka Client dockerfile
FROM openjdk:8
ADD target/foo.jar foo.jar
EXPOSE 8971
ENTRYPOINT ["java", "-jar", "foo.jar"]
Eureka服务器使用 @EnableEurekaServer 进行注释,Eureka客户端使用 @EnableEurekaClient 进行注释
客户端已成功注册EurekaServer,一切正常。但是当我尝试使用下面的
在Docker中运行它时版本:" 2.0"
services:
foo-service:
build: foo/
ports:
- "8761:8761"
bar-service:
build: bar/
ports:
- "8971:8971"
客户端无法注册服务器。并且低于stacktrace。
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
| at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:111) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:798) ~[eureka-client-1.6.2.jar!/:1.6.2]
| at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:104) [eureka-client-1.6.2.jar!/:1.6.2]
| at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_171]
| at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_171]
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_171]
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_171]
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_171]
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_171]
| at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]
我真的是Docker中的新人,有什么帮助吗?
答案 0 :(得分:0)
将+--------+--------+
| testID | Status |
+--------+--------+
| 1 | fail |
| 2 | pass |
| 3 | fail |
+--------+--------+
中的update Table1 a inner join
(
select
b.testID,
iif(min(b.status)=max(b.status) and min(b.status)='pass','pass','fail') as v
from Table2 b
group by b.testID
) c on a.testID = c.testID
set a.testStatus = c.v
修改为:
testID
将$aa=array("a" => 1, "b" => 2, "c" =>3, "d" => 4);
foreach($aa as $value)
{
$temp[]=$value;
}
echo implode(",",$temp);
中的dockerfile
修改为:
EurekaServer
在FROM openjdk:8
ADD target/eureka-service.jar eureka-service.jar
EXPOSE 8761
ENTRYPOINT java -jar Eureka-0.0.1-SNAPSHOT.jar eureka
的属性文件中,修改此属性
dockerfile
现在分别为两个应用程序构建映像。
在EurekaClient
中,您将需要添加一些配置以将客户端与服务器链接。修改后的docker-compose如下所示:
FROM openjdk:8
ADD target/foo.jar foo.jar
EXPOSE 8971
ENTRYPOINT java -jar foo.jar foo
干杯!