首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

被Spring坑了一把,查看源码终于解决了DataFlow部署K8s应用的问题

1 前言

基于各种原因,团队的被加了限制,必须在特定的才可以部署。而之前没有指定,所以在跑时失败了,无法创建。按照官方文档配置也一直没用,后面查看源码、修改源码增加日志后终于解决了。

2 配置无法生效

在自己定义文件,并通过部署时,所添加的限制节点的内容是这样的:

这样设置是可以成功部署的。

修改的配置如下:

通过发布,报错如下:

查看官网,按照官方的格式修改配置:

修改如下:

依旧报错。改成,还是报错。加引号,也没用。

查看日志,也没有太多信息。

折腾了许久,也没太大进展。于是就查看源码了。

3 查看源码

3.1 源码下载

下载了Spring Cloud Data Flow的源码,看了一下,没有多大用处,最终发布到是通过来发布的,于是又下载了它的源码。要注意不要下载错了版本,我们用的是版本。或者直接下载所有,然后切换到对应分支:

先一下,确保成功:

3.2 添加日志

查看源码,也看不出为何配置没有生效,于是在关键点打些日志出来看看。找到发布的入口:

即类的方法。开始追踪创建的过程。

然后在整个调用链增加日志打印,注意日志要加上特殊字符串,增加识别性,如:

追加了日志后,重新包,替换掉引入的包,重新发布即可测试。

通过新加的日志,发现设置的一直就是没有生效的,但为何没生效尚未得知。

4 修改源码

折腾了一圈还是没解决,但项目又要急着使用,于是想了个办法,先修改源码,自己根据属性使其生效:

如果没有读取到,就自己生成一个。

重新打包、替换、部署后,不再报错,能正常执行了。

5 最终解决

之前的方案只是暂时解决,并不是一个好的办法,还是要搞清楚为何配置没有生效。于是再次查看源码。在查看类的时候,发现了一点端倪:

这里的字段是没有的。

另外,从测试用例入手(这是一个很好的思维,测试用例能告诉你很多信息),看到了配置用例,如下:

所以,应该是不用配置前缀的,修改后配置如下:

重新部署后,可以了!!!

6 总结

这一次确实是被坑了一把,没有明确给出配置的示例,然后官方文档给的提示也是极其误导。一开始很难想到是不用前缀的,因为的标准配置是有的,而的官方文档提示也是有的。实在太坑了!

还好,通过查看源码及调试,终于解决了这个问题。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200907A00X1000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券