回答
不,但您可以批处理API调用以获得更好的性能。在this博客文章中查看“批量RPC”示例。
要注意的另一件事是梁不能保证一次 - 外部API调用。如果所讨论的流水线需要完全一次QoS,则应努力使API调用具有幂等性。
这取决于API调用和类型你的数据的大小。如果数据指定需要进行的API调用,则这是适当的。但是,如果您有一些用于丰富输入元素的有限数据,则可以使用Beam编程模型的某些部分来减少所需的外部呼叫数量。例如,如果可以预加载生成API调用结果的数据,则可以通过读取所有数据并使用View.asMap
(或任何适合的视图)来使用侧面输入,从而减少API调用的时间数量为每次执行一些相对恒定的数量。然后可以通过使用ParDo.withSideInputs
来消耗侧面输入;请参阅programming guide,特别是关于ParDo和SideInputs
非常感谢Thomas的详细回复。我还可以问一下,根据Apache Beam编程模型进行这种API调用是否是反模式? –
它高度依赖于您的数据和外部API;它的适当程度取决于访问模式,外部服务的可用性以及其他上下文元素。在某些情况下可能不合适,但我不会将其称为反模式。 –
谢谢托马斯! –
- 1. Python Apache Beam Pipeline状态API调用
- 2. 装饰者模式是否违反SRP?
- 3. DbFunctions类是否违反SRP
- 4. 检查PCollection是否为空 - Apache Beam
- 5. 线程是否违反了robots.txt?
- 6. 自动检查是否违反了android:minSdkVersion
- 7. 防御性编程是否违反DRY原则?
- 8. 自定义HTML帮助程序类是否违反了ASP.NET MVC模型?
- 9. 函数参数是否违反封装?
- 10. Python __init___:这是否违反约定?
- 11. 如何使用Apache Beam模型导航树
- 12. Apache Beam/Flink ExceptionInChainedStubException
- 13. 这是否违反了EJB限制?
- 14. 此方法调用是否违反Demeter法则?
- 15. 这两个类是否违反封装?
- 16. Apache Beam mongodb源码
- 17. 堆违反
- 18. ToString()方法是否违反SRP?
- 19. 这是否违反了德米特法?
- 20. 是否有模型方法输出单个HTML元素违反了MVC?
- 21. 这个例子是否违反`string`类型的不变性?
- 22. 工厂方法模式是否违反开放/关闭原则?
- 23. Apache Beam是否支持其输出的自定义文件名?
- 24. 违反字符编码
- 25. ReferenceError回调没有违反
- 26. jQuery回调 - 严格违反
- 27. 这个弹出窗口是否违反HIGS?
- 28. 使用ViewModels和对System.Web.Mvc的引用是否违反了MVC模式?
- 29. 它是否违反苹果TOS使用AppMobi和ASP.NET MVC
- 30. 什么是Apache流程模型?
感谢您对批量RPC的建议。 –