2017-11-28 20 views
1

Apache Flink를 처음 사용합니다. 나는 DataStream을 만들고 그것을 다른 시스템의 값으로 보내고 싶다.Apache Flink 데이터 스트림 피드 방법

"SourceFunctions"를 추가하는 방법을 예제에서 찾았습니다.이 함수에서는 소스에서 값을 기다리고 해당 값을 Flink에 게시하고 ctx.collect를 호출 한 다음 다시 폴링합니다.

하지만 값이 도착하면 함수를 호출하는 데이터 소스가 있습니다 (비동기). 그래서, 내가하고 싶은 것은 :이 비동기 호출이 발생했을 때, Flink DataStream, Pseudo-Code에 값을 넣고 싶습니다 :

mysystem.connect_to_values ​​((value) => {myflinkdatastream.put (value.toString)}))

이 작업을 수행 할 수 있습니까? 그렇지 않으면 SourceFunction에서 연결 및 콜백을 실행하고 이후에는 잠자기 루프를 실행해야하지만이 방법으로는 수행하지 않아도됩니다.

"외부 데이터 용 비동기 입출력 Access "를 사용하지만, SourceFunctions (Poll/Loop)로 피드하는 소스 스트림이 여전히 필요합니다.

답변

0

스트리밍 작업에 SourceFunction을 추가하지 않으려면 비동기 소스의 데이터를 보낼 수있는 Kafka 또는 다른 메시지 대기열을 사용하고 Flink Streaming Job을 메시지 대기열에 연결하는 것이 좋습니다.

+0

감사합니다.하지만이 경우 추가 시스템을 추가하고 싶지는 않습니다. 하지만 비공식적 인 방법이 없다면 폴링 스타일로 할 것입니다. –