这篇文章主要知识点是关于Spring、Cloud、Finchley、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
最近为了使用Kotlin以及Webflux进行后台应用开发,把Spring Cloud版本升级到了Finchley。
这种大版本的提升,坑自然是少不了的,我最近会把遇到问题都总结在这里避免大家花太多时间在排坑上:
Failed to bind properties under ‘eureka.instance.instance-id' to java.lang.String:
Description:
Failed to bind properties under 'eureka.instance.instance-id' to java.lang.String:
Property: eureka.instance.instance-id
Value: ${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}
Origin: "eureka.instance.instance-id" from property source "bootstrapProperties"
Reason: Could not resolve placeholder 'spring.cloud.client.ipAddress' in value "${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}"
spring.cloud.client.ipAddress
这个参数已经不能被识别了
我们来看看源码:
# org.springframework.cloud.client.HostInfoEnvironmentPostProcessor @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { InetUtils.HostInfo hostInfo = getFirstNonLoopbackHostInfo(environment); LinkedHashMap<String, Object> map = new LinkedHashMap<>(); map.put("spring.cloud.client.hostname", hostInfo.getHostname()); map.put("spring.cloud.client.ip-address", hostInfo.getIpAddress()); MapPropertySource propertySource = new MapPropertySource( "springCloudClientHostInfo", map); environment.getPropertySources().addLast(propertySource); }
发现原来的ipAddress已经改为ip-address,那么我们在配置中心做相应的改正即可。
注:改为ip-address不会对之前的老版本的项目产生影响,会自动解析并正确赋值
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
Spring Cloud升级最新Finchley版本的所有坑
Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级。 升级前 = 升级后 Spring Boot 1.5.x = Spring Boot 2.0.2 Spring Cloud Edgware SR4 = Spring Cloud Finchley.RELEASE Eureka Server Eureka Server 依赖更新 升级前: dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-eureka-server/artifactId/dependency 升级后: dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency Eureka Client 因为配置中心需要作为服务注册到注册中心,所以需要升级 Eureka Client,其他依赖没有变动。 Eureka Client 依赖更新 升级前: dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-eureka/artifactId/dependency 升级后: dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-netflix-eureka-……
spring cloud升级到spring boot 2.x/Finchley.RELEASE遇到的坑
spring boot2.x已经出来好一阵了,而且spring cloud 的最新Release版本Finchley.RELEASE,默认集成的就是spring boot 2.x,这几天将一个旧项目尝试着从低版本升级到 2.x,踩坑无数,记录一下: 显著变化: 与 Spring Boot 2.0.x 兼容 不支持 Spring Boot 1.5.x 最低要求 Java 8 新增 Spring Cloud Function 和 Spring Cloud Gateway 一、gradle的问题 spring boot 2.x 要求gradle版本不能太旧,先把gradle升级到4.6版本,然后编译,各种问题,到gradle官网上查了下,build.gradle有几个小地方要调整 1.1 java-libary 的项目 即:纯工具包这种公用jar,plugins{}必须放在第1行(有buildscript的除外),类似: plugins { id 'java-library'} 然后按官网的教程,compile最好换成implementation dependencies { implementation( ... )} 1.2 常规java项目(指带容器能独立运行的项目) buildscript { ext { springBootVersion = '2.0.1.RELEASE' } repositories { maven { url "http://maven.……
详解Spring Cloud Finchley版中Consul多实例注册的问题处理
consul 简介 consul 具有以下性质: 服务发现:consul通过http 方式注册服务,并且服务与服务之间相互感应。 服务健康监测 key/value 存储 多数据中心 consul可运行在mac windows linux 等机器上。 由于Spring Cloud对Etcd的支持一直没能从孵化器中出来,所以目前来说大多用户还在使用Eureka和Consul,之前又因为Eureka 2.0不在开源的消息,外加一些博眼球的标题党媒体使得Eureka的用户有所减少,所以,相信在选择Spring Cloud的用户群体中,应该有不少用户会选择Consul来做服务注册与发现。 本文就来说一下,当我们使用Spring Cloud最新的Finchley版 + Consul 1.2.x时候最严重的一个坑:多实例注册的问题。 问题解读 问题:该问题可能在开发阶段不一定会发现,但是在线上部署多实例的时候,将会发现Consul中只有一个实例。 原因:造成该问题的主要原因是Spring Cloud Consul在注册的时候……