在CloudFoundry中使用SCDF 2.9.X与Skipper 2.8.X获取无版本应用名称的方法
关于CloudFoundry环境下SCDF 2.9.X + Skipper 2.8.X获取无版本应用名称的解决方案
针对你遇到的Skipper自动添加-v#版本后缀导致监控不便的问题,有几种方法可以获得一致的应用名称:
针对单个应用指定固定名称
在部署流时,通过deployer.<应用ID>.cloudfoundry.application.name属性直接设置固定应用名,跳过Skipper的版本后缀逻辑。示例部署命令:stream deploy my-stream --properties deployer.my-source.cloudfoundry.application.name=fixed-source-name,deployer.my-processor.cloudfoundry.application.name=fixed-processor-name这里的
<应用ID>对应你流定义中的应用标识符(比如流http | filter | log里的http、filter、log)。全局禁用版本后缀(谨慎使用)
修改Skipper的配置文件,设置全局默认的应用命名策略为固定名称:spring.cloud.skipper.server.platform.cloudfoundry.defaults.applicationNameStrategy=fixed注意:此配置会全局关闭版本后缀,会影响蓝绿部署的实例区分能力——新旧版本会共用同一个应用名,无法通过名称区分蓝绿实例。如果仍需要蓝绿部署,建议仅针对特定流单独配置固定名称,而非全局设置。
通过SCDF流定义绑定属性
也可以在流定义中直接嵌入应用属性,比如:http --deployer.cloudfoundry.application.name=fixed-http-source | filter --deployer.cloudfoundry.application.name=fixed-filter-processor | log --deployer.cloudfoundry.application.name=fixed-log-sink这样在部署该流时,每个应用都会使用你指定的固定名称。
额外提醒
如果保留蓝绿部署需求,不建议全局禁用版本后缀。此时可以通过CloudFoundry的应用标签、元数据字段来标识应用,监控系统通过这些标识而非应用名称来识别目标应用,既能保留蓝绿的版本区分,又能解决监控一致性问题。
内容的提问来源于stack exchange,提问作者Aravind1986
相关产品推荐
相关产品推荐

