RabbitMQ风暴喷口无法连接到现有队列

时间:2017-02-01 10:50:27

标签: java maven rabbitmq apache-storm

我尝试使用spout构建风暴/苍鹭拓扑,该spout从RabbitMQ队列获取数据并将其传递给将数据发送到另一个队列的bolt。我还在这里学习,所以我尝试使用这个项目来构建我的拓扑结构:https://github.com/redink/storm-rabbitmq/tree/master/storm-rabbitmq-test

我的拓扑:

public class Topology {
    public static void main(String[] args) throws Exception
    {
        TopologyBuilder builder = new TopologyBuilder();
        QueueDeclaration qd = new ExclusiveQueueWithBinding("rabbit-heron-input", "rabbit-heron-input");
        Scheme scheme = new BasicScheme();
        builder.setSpout( "spout", new AMQPSpout("localhost", 5672, "guest", "guest", "/", qd, scheme));
        builder.setBolt( "rabbitbolt", new EndBolt(),1 )
                .shuffleGrouping("spout");
        Config conf = new Config();
        conf.setDebug(true);
        conf.setNumWorkers(1);
        conf.setMaxSpoutPending(5000);
        try{
            StormSubmitter.submitTopology("testingrabbitheron", conf, builder.createTopology() );
        }
        catch(AlreadyAliveException e){ }
    }
}

我的pom.xml:

<dependencies>
    <dependency>
        <groupId>com.twitter.heron</groupId>
        <artifactId>heron-storm</artifactId>
        <version>0.14.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.clojars.storm-amqp</groupId>
        <artifactId>storm-amqp-spout</artifactId>
        <version>0.2.7-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.clojars.pdoctor</groupId>
        <artifactId>storm-json</artifactId>
        <version>0.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>3.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.10</artifactId>
        <version>0.10.1.1</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>github-releases</id>
        <url>http://oss.sonatype.org/content/repositories/github-releases/</url>
    </repository>
    <repository>
        <id>clojars.org</id>
        <url>http://clojars.org/repo</url>
    </repository>
</repositories>

我已经有了兔子 - 苍鹭 - 输入交换,它被绑定到带有路由键rabbit-heron-input的rabbitmq-heron-input队列。

每次激活此拓扑时,它始终会创建一个新队列,而不是连接到现有队列。我尝试向rabbitmq-heron-input队列发送消息,但是它没有被spout检测到。当我检查RabbitMQ管理网页时,它会显示一个新的队列(名称为amq.gen-dWg3pmSodeL7lZ0coMAXNw),它有一个连接的消费者(我假设是鲸鱼喷水,因为我在当地环境中工作)。

有人可以帮忙吗?

0 个答案:

没有答案
相关问题