繁体   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