我试图从Dataflow管道访问在GKE中运行的Kafka和第三方服务(例如,InfluxDB).
我有一个用于服务发现的DNS服务器,也在GKE中运行.我的网络中也有一条路径可以从Dataflow实例访问GKE IP范围,这很正常.我可以nslookup使用我的自定义服务器从Dataflow实例手动运行而不会出现问题.
但是,在运行Dataflow管道时,我找不到合适的方法来设置其他DNS服务器.我怎么能实现这一点,以便KafkaIO类似的源/编写者可以解析我的自定义DNS的主机名?
sun.net.spi.nameservice.nameservers使用起来很棘手,因为必须在名称服务静态实例化之前尽早调用它.我会打电话java -D,但Dataflow将直接运行代码本身.
此外,我不想只是替换系统解析器,而只是将新的一个附加到实例预先配置的GCP项目特定的解析器.
最后,我还没有找到任何方法来使用启动脚本,例如使用Dataflow实例的常规GCE实例.
google-cloud-platform google-kubernetes-engine google-cloud-dataflow
Apache Beam 最近通过注释引入了状态单元,并在Apache Flink 和 Google Cloud Dataflow 中提供了部分支持。StateSpec@StateId
我找不到任何有关将其与GlobalWindow. 特别是,有没有一种方法可以拥有“状态垃圾收集”机制,以根据某些配置摆脱一段时间未见过的键的状态,同时仍然保持已见过的键的单个历史状态足够频繁吗?
或者,在这种情况下使用的状态量是否会出现偏差,无法回收与一段时间未见过的键相对应的状态?
我还对 Apache Flink 或 Google Cloud Dataflow 是否支持潜在的解决方案感兴趣。
Flink 和 direct runner 似乎有一些“状态 GC”的代码,但我不太确定它的作用以及它在使用全局窗口时是否相关。