Tag: netflix eureka

在Docker虚拟机上运行并在本地主机上运行的服务如何dynamic注册到EUREKA?

我的Eurekaconfiguration有问题。 通常我所有的服务都作为虚拟机中的docker容器运行。 我的configuration如下所示: eureka: instance: prefer-ip-address: true ip-address: 192.168.99.100 有时我想debugging一个服务并在本地启动它作为spring-boot应用程序,并且仍然在上面注册IP。 据我了解,configuration中的IP只是覆盖真实的IP。 我的想法解决这个问题,是一个configuration文件,它覆盖了Docker虚拟机IP。 但是我的机器IP正在定期更换。 有没有办法让IP的configuration根据我的机器IPdynamic变化。 eureka: instance: prefer-ip-address: true ip-address: 192.168.99.100 — spring: profiles: local eureka: instance: ip-address: TODO change dynamically 如果这还没有实施,我可以自己实施吗? 非常感谢! 🙂

在Docker容器中无法启动我的Eureka Spring REST服务

我的项目由在Eureka注册的REST服务组成,我也使用Zuul代理来pipe理请求,如图所示。 它以本地方式在我的电脑上完美运行,但是当我为我的服务创build一个docker容器时,它不会启动。 我遵循的步骤是: 我为每个服务创build了一个Docker容器:Eureka服务器,Zuul API网关,REST服务和我的Mysql数据库。 我从数据库中的存储过程中获取我的服务的数据,这个连接被testing并且工作。 我使用docker-compose启动所有实例,尤里卡和数据库实例保持运行,但REST服务实例突然停止。 祖鲁还没有实施。 错误: matriculas-ms_1 | org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.eurekaClient' defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.discovery.EurekaClient]: Factory method 'eurekaClient' threw exception; nested exception is […]

在docker集装箱尤里卡:未知的主机例外

我试图启动尤里卡服务器通过docker容器上的春季启动,并得到以下exception“unknownhostexception”。 现在在eureka config.properties文件中,我使用hostname作为本地主机,但是exception显示它以某种方式使用容器的主机名,而不是使用我在eureka属性文件中定义的主机名。 而且,即使使用容器定义的主机名,它也能正确parsing容器,并且在/ etc / hosts中有入口。 注意 : 这只有在使用oracle java 7/8时才是可重现的,但是在openjdk 7中可以正常工作。任何线索可能是这里的问题。 已尝试在eureka属性中使用localhost的127.0.0.1,但没有成功。 尤里卡configuration文件内容: # Configure this Discovery Server eureka: instance: hostname: localhost client: # Not a client, don't register with yourself registerWithEureka: false fetchRegistry: false server: port: 1111 # HTTP (Tomcat) port exception堆栈跟踪: 2016-01-11 20:04:54 INFO RegistrationServer:47 – Starting RegistrationServer v0.0.1-SNAPSHOT with PID […]

与尤里卡服务器和docker的spring启动应用程序

嘿,我试图运行2春季启动aps(尤里卡服务器和尤里卡客户端)和1 postgresql数据库在本地机器上的单独docker集装箱,我正面临与尤里卡客户端的一些问题。 如果我在docker集装箱外运行它们,一切工作正常。 尤里卡服务器application.yml: server: port: 8070 eureka: instance: hostname: localhost # prefer-ip-address: false client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ security: basic: enabled: true user: name: admin password: admin 尤里卡服务器Dockerfile: FROM java:8 EXPOSE 8070 VOLUME /tmp ADD service-registry-0.0.1-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom […]

尤里卡服务器不能用于传统的战争部署在Docker中

尤里卡启动gradle项目在这里 。 当我运行bootRun ,工作正常,尤里卡绑定到本地主机上的端口8080,可以从浏览器访问,大家都很开心。 当作为Docker容器启动时,应用程序似乎没有任何exception,但我无法从8080端口的浏览器访问Eureka控制台。我得到了404。 我知道在Docker上有几个Eureka的例子,但是没有一个使用gradle和传统的部署。 命令我用来启动一个容器: docker run -it -p 8080:8080 -e DOCKER_HOST="$(echo $DOCKER_HOST | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" xxx Docker引擎1.9与Mac上的Docker机器。 日志片段 : Adding replica node: http://192.168.99.107:8080/eureka/ 2015-12-26 03:35:42.959 INFO 7 — [ost-startStop-1] najavaee.discovery.DiscoveryServer : Started DiscoveryServer in 8.167 seconds (JVM running for 12.804) application.yml : server: port: ${PORT:8080} eureka: instance: hostname: ${DOCKER_HOST:localhost} preferIpAddress: true […]

如何在docker中为IP地址注册服务而不是在容器Id中使用spring-cloud服务?

我试图设置eureka.instance.hostname,preferIpAddress,ipAddress,instanceId,但实例ID仍然是docker容器ID。 我如何将它们设置为IP地址? eureka: instance: hostname: ${server.host} preferIpAddress: true ipAddress: ${server.host} instanceId: ${server.host} client: serviceUrl: defaultZone: http://pitbull:j1n3v9z9j3nc@${server.remote}:8888/eureka/

@EnableDiscoveryClient spring启动服务注册

我正在使用@EnableDiscoveryClient netflix服务发现和@EnableDiscoveryClient批注,将一个Spring启动应用程序运行到@EnableDiscoveryClient容器中。 运行我的应用程序,它使用特定的ip地址(docker容器的地址)注册到eureka。 我想改变这个IP到主机的IP地址,这样我的应用程序将被注册到尤里卡与主机的IP地址是我的容器正在运行。

如何在Eureka中使用IP地址而不是主机名?

我需要告诉运行在Docker上的Eureka客户端使用主机的IP来注册它的服务。 我用下面的,但它不工作。 eureka.instance.prefer-ip-address=true 在尤里卡注册的服务是容器ID。

在Eureka上注册Docker内部IP的微服务而不是公共的

我试图在Eureka上注册一些微服务。 他们部署在远程机器上,我希望能够在Eureka上看到机器的IP,但我所能看到的是一个私有IP,如172.17.0.8 ,这是不能从外部访问的。 由于这些微服务运行在Docker容器上,所以我知道我需要告诉服务器来取代主机的IP,而不是Docker的,但我真的不知道如何。 我在github上看到了这个问题 – > https://github.com/spring-cloud/spring-cloud-netflix/issues/432 并尝试: eureka.instance.prefer-ip-address=true eureka.instance.ip-address= 这不太合适。 有没有办法做到这一点,不涉及到我的服务或使用AWS的API添加代码?

在Docker Swarm集群中使用Eureka副本进行微服务注册

如果我有一个用于Eureka服务发现的微服务,并且在docker-compose.yml中有5个副本,那么这5个eureka容器将分布在swarm集群中可用的多个swarm节点上。 我的问题是,当一个微服务想要向尤里卡注册时, 它会在eureka服务器的configuration中指定swarm集群中主节点的ip地址吗? 当微服务以任何方式向eureka注册时,这个registry是否会被复制到群集中的所有eureka容器上,因为谁知道swarm群集中的哪个eureka节点将服务于特定的微服务。