Spring云端口冲突8888
Spring Cloud Port Conflict 8888
我在启动服务时出现端口冲突,配置服务已经是运行。我目前正在使用 Spring Boot 1.2.3.RELEASE 和 Spring 云版本 1.0.0.RELEASE(尝试使用 1.0.1.RELEASE,同样的问题)。
如果我在端口 8888 中启动配置服务器,然后尝试启动另一个服务,即使我指定了另一个端口,它也会尝试在端口 8888 中启动。奇怪的是,这不会发生在 Mac OS 中,它确实发生在 Windows 和 Linux.
中
如果我先启动服务,然后再启动配置服务器,一切都会正常进行。该服务分配的端口与 8888 和配置服务端口 8888 不同。
我尝试了不同版本的 Spring Cloud 和 Spring Boot 以及不同的配置。我尝试了 post 上的建议,但没有用。
关于如何解决这个问题有什么想法吗?
--
我设法通过从 Config Server 中的 application.yml
中删除 server.port
并将其移动到 bootstrap.yml
来解决端口冲突].我还从 Client Service 中的 application.yml
中删除了 server.port
,并将其移至 bootstrap.yml
。您可以在下面看到配置文件目前的样子。
这些是配置服务中的配置文件:
bootstrap.yml
server:
port: 8888
info:
name: "Config Service"
spring:
application:
name: config-service
profiles:
active: native
cloud:
config:
enabled: true
server:
git:
uri: <url to config repo>
application.yml
management:
context-path: /admin
info:
configuration: "Read From Config Service application.yml"
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
logging:
level:
com.netflix.discovery: 'OFF'
org.springframework.cloud: 'DEBUG'
eureka:
instance:
leaseRenewalIntervalInSeconds: 10
leaseExpirationDurationInSeconds: 5
preferIpAddress: false
statusPageUrlPath: /admin/info
healthCheckUrlPath: /admin/health
metadataMap:
hostname: ${vcap.application.application_uris[0]}
instanceId: ${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${random.value}}}
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://127.0.0.1:8761/eureka/
客户端服务中的配置是:
bootstrap.yml
server:
port: 0
info:
name: "Client Service"
spring:
application:
name: serviceC
profiles:
active: native
cloud:
config:
enabled: true
failFast: true
env: default
label: master
uri: http://localhost:8888
application.yml为空
现在我有另一个问题。在 Linux 中,Client 正在从 Config Server 中的 application.yml
文件获取配置(端口的来源冲突)并在 Mac OS 中它从配置的 git 存储库中获取它。
正确的行为应该是什么?
终于成功了。
问题出在 profiles.active: native
设置上。 Linux 上的 配置服务 正在从本地 application.yml
获取配置。由于某种原因,此设置在 Mac OS 上不起作用,并且配置服务正在从 Repo 获取配置.
最后我删除了 profiles.active: native
设置并将公共配置移动到 Repo。现在所有服务都从 git 中的 application.properties
获取通用配置。
我在启动服务时出现端口冲突,配置服务已经是运行。我目前正在使用 Spring Boot 1.2.3.RELEASE 和 Spring 云版本 1.0.0.RELEASE(尝试使用 1.0.1.RELEASE,同样的问题)。
如果我在端口 8888 中启动配置服务器,然后尝试启动另一个服务,即使我指定了另一个端口,它也会尝试在端口 8888 中启动。奇怪的是,这不会发生在 Mac OS 中,它确实发生在 Windows 和 Linux.
中如果我先启动服务,然后再启动配置服务器,一切都会正常进行。该服务分配的端口与 8888 和配置服务端口 8888 不同。
我尝试了不同版本的 Spring Cloud 和 Spring Boot 以及不同的配置。我尝试了 post 上的建议,但没有用。
关于如何解决这个问题有什么想法吗?
--
我设法通过从 Config Server 中的 application.yml
中删除 server.port
并将其移动到 bootstrap.yml
来解决端口冲突].我还从 Client Service 中的 application.yml
中删除了 server.port
,并将其移至 bootstrap.yml
。您可以在下面看到配置文件目前的样子。
这些是配置服务中的配置文件:
bootstrap.yml
server:
port: 8888
info:
name: "Config Service"
spring:
application:
name: config-service
profiles:
active: native
cloud:
config:
enabled: true
server:
git:
uri: <url to config repo>
application.yml
management:
context-path: /admin
info:
configuration: "Read From Config Service application.yml"
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
logging:
level:
com.netflix.discovery: 'OFF'
org.springframework.cloud: 'DEBUG'
eureka:
instance:
leaseRenewalIntervalInSeconds: 10
leaseExpirationDurationInSeconds: 5
preferIpAddress: false
statusPageUrlPath: /admin/info
healthCheckUrlPath: /admin/health
metadataMap:
hostname: ${vcap.application.application_uris[0]}
instanceId: ${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${random.value}}}
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://127.0.0.1:8761/eureka/
客户端服务中的配置是:
bootstrap.yml
server:
port: 0
info:
name: "Client Service"
spring:
application:
name: serviceC
profiles:
active: native
cloud:
config:
enabled: true
failFast: true
env: default
label: master
uri: http://localhost:8888
application.yml为空
现在我有另一个问题。在 Linux 中,Client 正在从 Config Server 中的 application.yml
文件获取配置(端口的来源冲突)并在 Mac OS 中它从配置的 git 存储库中获取它。
正确的行为应该是什么?
终于成功了。
问题出在 profiles.active: native
设置上。 Linux 上的 配置服务 正在从本地 application.yml
获取配置。由于某种原因,此设置在 Mac OS 上不起作用,并且配置服务正在从 Repo 获取配置.
最后我删除了 profiles.active: native
设置并将公共配置移动到 Repo。现在所有服务都从 git 中的 application.properties
获取通用配置。