在此 ActiveMQ 示例中,消息代理的作用是什么?

What is the message broker for in this ActiveMQ example?

我是 ActiveMQ 的新手并测试了 this implementation request/response。

我运行 Apache ActiveMQ 在同一台机器上。

它按预期工作,但我想知道,Messagebroker 在服务器代码中的用途是什么:

    try {
        //This message broker is embedded
        BrokerService broker = new BrokerService();
        broker.setPersistent(false);
        broker.setUseJmx(false);
        broker.addConnector(messageBrokerUrl);
        broker.start();
    } catch (Exception e) {
        //Handle the exception appropriately
    }

当我完全删除这个块时,它仍然可以工作,那么它有什么用呢?我认为,消息代理是在我之前启动的 ActiveMQ 中实现的,用于从队列中读取。为什么我需要一个“嵌入式”经纪人?

有助于理解 ActiveMQ 本质上“只是一个库”。您可以 运行 它作为一个独立的服务器(就像您在您的机器上一样),或者将它嵌入 Java 代码、单元测试或 Java 应用程序中。该网页上的示例使用嵌入式 ActiveMQ 代理 (server-side) 提供消息流的 all-in-one 视图。

由于您 运行 在同一台机器上安装了一个独立的 ActiveMQ 代理,该嵌入式代理很可能没有被使用——因为每台机器一次只能有一个进程在端口 61616 上侦听。