我有多个微服务,通过REST电话相互通信。我使用了spring引导和spring,并在application.properties文件中配置了rest端点的URLS。现在的问题是,如果一个端点的URL发生变化,那么我必须手动修改服务的所有属性文件,这些属性文件调用的是被更改的特定端点。
是否有一个解决办法,以便URLS可以以某种方式放置在一个集中的位置,这样任何修改都不会影响其他正在使用它的服务。
发布于 2018-12-28 07:23:30
您可以使用spring来实现这一点。在spring中常用的方法是在git中配置所需的属性。然后,只要配置最少,任何微服务都可以访问这些属性。您可以将本回购中的项目 limits-services
用作需要在spring-cloud-config-server
中配置的某些属性的客户端。希望这能有所帮助。
发布于 2018-12-28 06:38:40
对于微服务,您可以使用Spring (弹簧云Config,服务器)。它非常有用,您可以在运行时更新您的配置。
Spring为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中为应用程序管理外部属性。客户端和服务器上的概念映射与Spring和PropertySource抽象完全相同,因此它们非常适合Spring应用程序,但可以用于任何语言中运行的应用程序。当应用程序在部署管道中从dev迁移到测试并进入生产时,您可以管理这些环境之间的配置,并确保应用程序在迁移时拥有运行所需的一切。
发布于 2018-12-28 07:20:43
正如其他人提到的,您可以使用Spring Cloud Config Server
来重新加载应用程序配置。您所需要的只是包含您的配置的git
存储库。
Spring云配置支持Git,数据库作为您的配置存储库。
想法是创建一个可以为其他应用程序提供配置的spring引导应用程序。
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
public static void main(String[] args) {
SpringApplication.run(ConfigServer.class, args);
}
}
您可以配置端口并使用密钥spring.cloud.config.server
提供git存储库。
server.port: 8888
spring.cloud.config.server.git.uri: file://${user.home}/config-repo
在客户端,如果类路径中有spring-config,应用程序将尝试连接到端口8888的应用程序运行以检索配置。
更多信息可以找到这里。
https://stackoverflow.com/questions/53954587
复制相似问题