如何在ApacheFlink程序中调用RESTAPI

如何在ApacheFlink程序中调用RESTAPI,rest,http,apache-flink,Rest,Http,Apache Flink,我想知道有没有办法打电话给 flink程序中的REST API(或多个REST API)是否直接?如果存在这样的解决方案 您是否认为最好先将处理后的数据从flink推送到消息代理(如kafka或其他)中,然后再从kafka调用REST API中推送到 或者我也可以直接从flink程序调用RESTAPI 用户函数(例如RichFlatMapFunction或KeyedProcessFunction)中的代码可以执行您想要的任何操作,包括对外部服务进行REST调用。但是,您应该避免在用户函数中执行阻

我想知道有没有办法打电话给

  • flink程序中的REST API(或多个REST API)是否直接?如果存在这样的解决方案
  • 您是否认为最好先将处理后的数据从flink推送到消息代理(如kafka或其他)中,然后再从kafka调用REST API中推送到
  • 或者我也可以直接从flink程序调用RESTAPI
    用户函数(例如RichFlatMapFunction或KeyedProcessFunction)中的代码可以执行您想要的任何操作,包括对外部服务进行REST调用。但是,您应该避免在用户函数中执行阻塞i/o操作,因为当操作员在用户函数中被阻塞时,检查点屏障无法通过操作员


    实现这一点的一个好方法是将Flink与提供异步客户端接口的HTTP库结合使用

    “来自Kafka调用REST api”-不太清楚该如何工作,但如果您控制该服务器的代码,您可以嵌入Kafka使用者,而不仅仅是接受REST谢谢,这一点很好。所以您认为,在流媒体环境中,使用Kafka consumer而不是rest api作为使用已处理数据的端点更为有效?如果您希望拥有一个无阻塞、最终一致的反应式体系结构,那么您可以考虑很多。请您编写一个简单的代码,演示如何使用异步I/O调用rest api?再次感谢如果您尝试rest+Async I/O并遇到问题,请随时提问。但我确实更喜欢@cricket_007推荐的更为事件驱动的架构,如果这是一个选项的话。