美好的一天
我通过flink / kafka接收数据(流数据)。 我连接的端口是将消息写回
所需的端口TCP / IP - > Flink / Kafka Consumer - >过程数据 - >将结果发送到kafka主题并返回到TCP / IP连接
onload
连接到URL和端口有效。我收到并处理数据 我写这个主题 现在我还需要回写我连接到的相同URL和端口。{由于Url和端口可以同时发送和接收数据}
我让它写到另一个端口
// 1. Connect to TCP Stream (TCP (Socket) -> Kafka Stream INPUT)
val consumer_stream = env.socketTextStream(url, port, '\n')
// 2. Processing Data
.....
// 3. Write result to kafka topic
consumer_stream.addSink(new FlinkKafkaProducer09[String](broker_url, topic_name, new SimpleStringSchema()))
// 4. Send result back to connected url ie.(Ref Step 1 URL) (url+port)
(This is where I need Assistance)
这有效......问题是尝试写入同一个端口。当我使用我正在阅读的相同端口时... flink作业失败
任何想法
此致
答案 0 :(得分:1)
您可以使用自定义的SinkFunction
将数据写回网址。
stream.addSink(new SinkFunction<String>() {
// initialise the client to send the data
public void invoke(String value) throws Exception {
// send here.
}
}
或SocketClientSink
env.socketTextStream("localhost", 5555).map(x => { println(x); x }).addSink(new SocketClientSink[String]("localhost", 5555, new SimpleStringSchema))