Microconfig功能

2020-12-05 03:16:40

Microconfig仅要求您在组件文件夹中的某个位置为服务创建文件夹。您选择名称和文件夹结构。如果您有不同类型的配置,只需将它们放在同一服务文件夹中即可。

组件├──付款│├──付款后端││├──application.yaml││└──values.deploy│└──付款前端│├──application.yaml│└──values.deploy└ ──... ...

微服务具有许多共享配置部分,它们之间被复制粘贴。因此,您需要逐一浏览所有服务以更新此共享部分。

Microconfig允许您将配置的公共部分提取到专用组件中,并与#include一起使用。这样,服务配置将更多的精力集中在独特的部分上,而所有公共部分都包括在内。在这种情况下,如果您需要更新公用部分,则只需在一个地方进行,每个人都可以通过#include获得此更新。

问题解决方案名称:后端付款服务器:端口:8080上下文:/ api监视:安全:错误的基本路径:/监视端点:信息,运行状况,就绪,普罗米修斯日志记录:级别:根:信息应用程序:调试

名称:支付前端支付后端:主机:http://payment-backend.local路径:/ api监视:安全:真正的基本路径:/ monitoring端点:信息,运行状况,就绪,普罗米修斯日志记录:级别:ROOT: INFO APP:调试

不同的服务可以依赖于彼此的配置密钥。例如,前端需要后端的api基本路径。您可以仅在两个位置保留此值,但在这种情况下,您需要记住该依赖性并同时更新它们。

Microconfig可以使用$ {placeholder}引用当前或另一个组件中的值。这允许您仅在原始服务中保留值,并且依赖它们的所有人都可以拥有明确的引用。在这种情况下,您只需更新一次值。

有时,静态值还不够,您想执行+1或base64。有些值甚至更易于理解为表达式。

Microconfig具有#{' expression' +' language'}动态生成您的值。它支持数学运算等等。

问题解决方案名称:支付前端支付后端:超时短信:#{3 * 60 * 1000}日志:文件名:#{' $ {this @ name}' .toUpperCase()} .log .. 。

我们将服务部署到具有特定属性的不同环境。您的生产数据库的IP地址与开发人员的IP地址不同。所有这些规范都应应用于您的环境的最终版本。

Microconfig支持您需要的每种环境的特定值。您只需创建覆盖.env。基本配置附近的文件。在此文件中,指定环境所需的所有内容,它将与基本配置合并。更具体的值将覆盖基本值。

您的服务通常需要一些其他的第三方配置文件,例如日志配置或部署脚本。如果这些文件对每种服务没有区别,那很容易,但是如果您需要对每种服务或环境进行一些更改,该怎么办呢?

Microconfig可以使用静态模板,并通过占位符和Moustache为每个服务填充唯一的数据。因此,您可以将模板放在一个位置,然后为每种服务生成特定的结果。

问题解决方案<配置> < appender class =" FileAppender"> < file> logs / payment-backend.log< / file> <编码器> < pattern>%d {HH:mm:ss}%-5level%logger%msg%n< / pattern> < / encoder> < / appender> < appender class =" LogstashTcpSocketAppender"> <目的地> 30.30.30.30:9600< /目的地> < encoder class =" LogstashEncoder"> < customFields> {"服务名":"付款后端"}< / customFields> < / encoder> < / appender> < / configuration>

<配置> < appender class =" FileAppender"> < file> logs / $ {this @ name} .log< / file> <编码器> < pattern>%d {HH:mm:ss}%-5level%logger%msg%n< / pattern> < / encoder> < / appender> {{#appender.stash}}< appender class =" LogstashTcpSocketAppender"> <目的地> 30.30.30.30:9600< /目的地> < encoder class =" LogstashEncoder"> < customFields> {" servicename":" $ {this @ name}"}< / customFields> < / encoder> < / appender> {{/appender.stash}}< / configuration>

当您在某种模板引擎中进行配置时,可能难以跟踪更改或比较不同版本的配置。例如,在将新部署到生产之前,您想知道配置中已更改的内容。

Microconfig允许您生成git style diff,并查看您的配置如何随时间变化或比较不同版本。

问题解决方案名称:支付前端监视:基本路径:/监视端点:信息,运行状况,就绪,普罗米修斯支付后端:主机:http://payment-backend.local路径:/ api服务器:maxThreads:100 minThreads: 10端口:80超时女士:180000

名称:支付前端监控:基本路径:/监控端点:信息,运行状况,就绪,普罗米修斯支付后端:主机:https://payment-backend.local路径:/ api timeoutMs:180000服务器:端口:80

+ payment-backend:timeoutMs:180000 -server:maxThreads:100 minThreads:10 timeoutMs:180000 Payment-backend:host:http://payment-backend.local-> https://payment-backend.local