Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在微服务架构中存储常量字段的最佳方式是什么?_Java_Spring Boot_Microservices_Spring Cloud - Fatal编程技术网

Java 在微服务架构中存储常量字段的最佳方式是什么?

Java 在微服务架构中存储常量字段的最佳方式是什么?,java,spring-boot,microservices,spring-cloud,Java,Spring Boot,Microservices,Spring Cloud,许多服务器使用相同的常量,因此有必要组织一个集中的系统来更改它们。在微服务体系结构中存储常量参数的最佳方法是什么 例如,我们存储静态final int MAX_PEOPLE_COUNT=100;此字段使用不同的微服务。如果我们改变这个值,所有的微服务都会看到它 如果还具有参数值的版本控制,那就太好了。有许多解决方案可以存储跨微服务配置。从所有commons数据库开始。我们专门使用来存储我们的跨微服务配置。有许多解决方案来存储跨微服务配置。从所有commons数据库开始。我们专门使用它来存储我们的

许多服务器使用相同的常量,因此有必要组织一个集中的系统来更改它们。在微服务体系结构中存储常量参数的最佳方法是什么

例如,我们存储静态final int MAX_PEOPLE_COUNT=100;此字段使用不同的微服务。如果我们改变这个值,所有的微服务都会看到它


如果还具有参数值的版本控制,那就太好了。

有许多解决方案可以存储跨微服务配置。从所有commons数据库开始。我们专门使用来存储我们的跨微服务配置。

有许多解决方案来存储跨微服务配置。从所有commons数据库开始。我们专门使用它来存储我们的跨微服务配置。

如果您在Spring生态系统中,最好的方法是使用Spring云配置服务器。您也可以轻松地获得在和中设置配置服务器的步骤。文档非常简单


您甚至可以使用Zookeeper作为SpringCloud的集中式配置服务。关于这方面的更多细节,请参见本节。

如果您在Spring生态系统中,最好的方法是使用Spring云配置服务器。您也可以轻松地获得在和中设置配置服务器的步骤。文档非常简单


您甚至可以使用Zookeeper作为SpringCloud的集中式配置服务。关于这方面的更多细节。

扩展@Madhu Bhat的论点,在我看来,最好的方法也是使用Spring Cloud Config Server

现在,针对两个微服务共享一些公共可配置值的用例(我有意将单词从常量更改为可配置,因为根据定义常量不是应该更改的东西),在spring中使用配置文件的最佳实践如下:

假设您的生态系统中有3个微服务(假设场景)

  • 计费服务
  • 购物车服务
  • 产品服务
作为最佳实践,您应该在各个级别维护配置文件-

  • 微服务+特定于环境的配置文件,例如billing-dev.properties或billing-test.properties 此属性文件将包含特定于特定服务的特定环境的属性。计费服务的某些属性可能与您的开发环境不同,而与测试环境不同。您可以拥有与您的环境一样多的属性/配置文件

  • 微服务级别–特定微服务的所有环境的通用属性,例如billing.properties

  • application.properties–此属性文件包含所有微服务或多个微服务(您的用例)的公共属性,例如计费和产品服务都需要一些可配置属性
属性/配置分辨率:

从microservice Prospect(比如billing service),根据您在服务启动时按属性配置指定的环境,将首先在第一个提到的属性文件(billing-test.properties或billing-dev.properties)中搜索任何属性

如果在特定于环境的属性中找不到所需的属性,则要搜索的回退配置文件将是第二个提到的所有环境的通用服务配置文件(billing.properties)


如果在上述两个文件中找不到属性,则它将由application.yml文件通过@Madhu Bhat扩展参数来解析,在我看来,最好的方法也是使用Spring Cloud Config Server

现在,针对两个微服务共享一些公共可配置值的用例(我有意将单词从常量更改为可配置,因为根据定义常量不是应该更改的东西),在spring中使用配置文件的最佳实践如下:

假设您的生态系统中有3个微服务(假设场景)

  • 计费服务
  • 购物车服务
  • 产品服务
作为最佳实践,您应该在各个级别维护配置文件-

  • 微服务+特定于环境的配置文件,例如billing-dev.properties或billing-test.properties 此属性文件将包含特定于特定服务的特定环境的属性。计费服务的某些属性可能与您的开发环境不同,而与测试环境不同。您可以拥有与您的环境一样多的属性/配置文件

  • 微服务级别–特定微服务的所有环境的通用属性,例如billing.properties

  • application.properties–此属性文件包含所有微服务或多个微服务(您的用例)的公共属性,例如计费和产品服务都需要一些可配置属性
属性/配置分辨率:

从microservice Prospect(比如billing service),根据您在服务启动时按属性配置指定的环境,将首先在第一个提到的属性文件(billing-test.properties或billing-dev.properties)中搜索任何属性

如果在特定于环境的属性中找不到所需的属性,则要搜索的回退配置文件将是第二个提到的文件generic service configuration fil
spring.profiles.active