簡體   English   中英

Flink RMQ源

[英]Flink RMQSource

我想測試RMQSource類以從RabbitMQ接收數據,但是我不知道如何為我的交換配置Rabbit虛擬主機,我認為這是我遇到的問題。 我的代碼:

import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.connectors.rabbitmq.RMQSource
import org.apache.flink.streaming.util.serialization.SimpleStringSchema

object rabbitjob {
  val env = StreamExecutionEnvironment.getExecutionEnvironment
  val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print


def main (args:Array[String]){
    env.execute("Test Rabbit")
 }
} 

IntelliJ IDE中的Error:(10, 29) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).printError:(10, 29) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print

^

Error:(10, 29) not enough arguments for method addSource: (implicit evidence$7: org.apache.flink.api.common.typeinfo.TypeInformation[String])org.apache.flink.streaming.api.scala.DataStream[String]. Unspecified value parameter evidence$7. val stream = env.addSource(new RMQSource[String]("192.168.1.11", 5672,"user","pass", "inbound.input.data",false, new SimpleStringSchema())).print

^

任何想法如何解決它或替代方案? 先感謝您。

事情隨着時間而改變。 請看一下RMQConnectionConfig :在這里您可以找到通過構建器模式指定虛擬主機的方法。

您還需要提供虛擬主機名。 看看AMQP URI規范

在您的情況下,整個AMQP URI看起來應該是"user:pass@192.168.1.11:5672/TestVHost"

您看到的錯誤是Scala編譯時錯誤,是由於某些所需的導入不存在而導致的。 每當使用Flink Scala API時,都應包括以下內容:

import org.apache.flink.api.scala._

這將解決您遇到的編譯時問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM