AMQ Broker 入门


Red Hat AMQ 2020.Q4

用于与 AMQ Broker 7.8 一起使用

摘要

本指南介绍了如何使用 AMQ Broker。

第 1 章 概述

AMQ Broker 是基于 ActiveMQ Artemis 的高性能消息传递实施。它使用异步日志来快速消息持久性,并支持多种语言、协议和平台。

1.1. 主要特性

AMQ Broker 提供以下功能:

  • 集群和高可用性选项
  • 快速、原生-IO 持久性
  • 支持本地事务
  • 在使用 AMQ Core Protocol JMS 和 AMQ OpenWire JMS 客户端时支持 XA 事务
  • 以 Java 语言编写,用于广泛的平台支持
  • 多个管理界面:AMQ 管理控制台、管理 API 和 JMX

1.2. 支持的标准和协议

AMQ Broker 支持以下标准和协议:

  • 线协议:

    • 核心协议
    • AMQP 1.0
    • MQTT
    • OpenWire(A-MQ 6 客户端使用)
    • STOMP
  • JMS 2.0

    注意

    AMQP 中分布式事务(XA)的详细信息不在规范 1.0 版本中提供。如果您的环境需要支持分布式事务,建议使用 AMQ Core Protocol JMS。

1.3. 支持的配置

请参阅文章 "Red Hat AMQ 7 支持的配置" on the Red Hat Customer Portal(Red Hat Customer Portal)中关于 AMQ Broker 支持的配置的信息。

1.4. 文档规范

本文档对 sudo 命令和文件路径使用以下惯例。

sudo 命令

在本文档中,sudo 用于需要 root 特权的任何命令。使用 sudo 时,您始终应小心谨慎,因为任何更改都可影响整个系统。

有关使用 sudo 的更多信息,请参阅 sudo 命令

关于在本文档中使用文件路径

在本文档中,所有文件路径对 Linux、UNIX 和类似操作系统(例如 /home/...)有效。如果您使用 Microsoft Windows,您应该使用对等的 Microsoft Windows 路径(如 C:\Users\..)。

第 2 章 了解 AMQ Broker

AMQ Broker 可让您将异构系统松散耦合,同时提供可靠性、事务和许多其他功能。在使用 AMQ Broker 前,您应了解它的功能。

2.1. 代理实例

在 AMQ Broker 中,安装的 AMQ Broker 软件充当一个或多个 代理实例的 "home"。这个架构提供了几个优点,例如:

  • 您可以根据单个 AMQ Broker 安装创建尽可能多的代理实例。

    AMQ Broker 安装包含每个代理实例需要运行的必要二进制文件和资源。这些资源然后在代理实例之间共享。

  • 当升级到 AMQ Broker 的新版本时,您只需要更新一次软件,即使您要在该主机上运行多个代理实例。

您可以将代理实例视为消息代理。每个代理实例都有自己的目录,其中包含其唯一的配置和运行时数据。此运行时数据由日志和数据文件组成,并与主机上的唯一代理进程关联。

2.2. 消息持久性

AMQ Broker 会保留消息数据,以确保消息永远不会丢失,即使代理意外关闭也是如此。AMQ Broker 为消息持久性提供了两个选项:基于日志的持久性和数据库持久性。

基于日志的持久性

默认选项默认选项将消息数据写入文件系统中存储的消息日志文件。最初,这些日志文件都会使用固定大小自动创建,并填充空数据。当客户端执行各种代理操作时,记录会附加到日志中。当其中一个日志文件满时,代理会移动到下一个日志文件。

基于日志的持久性支持事务操作,包括本地和 XA 事务。

基于日志的持久性需要 IO 接口来访问文件系统。AMQ Broker 支持以下内容:

Linux Asynchronous IO(AIO)

AIO 通常提供最佳性能,但需要以下内容:

Java NIO
Java NIO 提供良好的性能,可在带有 Java 6 或更新的运行时的任何平台上运行。
数据库持久性

这个选项使用 Java 数据库连接(JDBC)将消息和绑定数据存储在数据库中。如果您在您的环境中已有可靠且高性能的数据库平台,或者公司策略强制使用数据库,则此选项是一个很好的选择。

代理 JDBC 持久性存储使用标准 JDBC 驱动程序创建 JDBC 连接,在数据库表中存储消息和绑定数据。数据库表中的数据使用与基于日志的持久性相同的编码。这意味着,如果直接使用 SQL 访问,存储在数据库中的消息不可读。

要使用数据库持久性,您必须使用受支持的数据库平台。要查看当前支持的数据库平台,请参阅 Red Hat AMQ 7 支持的配置

2.3. 资源消耗

AMQ Broker 提供了多个选项,用于限制代理上的内存和资源消耗。

资源限值
您可以为每个用户设置连接和队列限制。这可防止用户使用代理的资源太多,并为其他用户造成性能下降。
消息分页

消息分页使 AMQ Broker 支持包含大量消息的大型队列,同时运行有限数量的内存。当代理收到超过其内存容量的消息激增时,它将开始向磁盘分页信息。这个分页过程是透明的,代理页面信息会根据需要被写入和内存不足。

消息分页基于地址。当地址内存中所有消息的大小超过最大大小时,地址的每个额外消息都会在地址的页文件中显示。

大消息
使用 AMQ Broker,您可以发送和接收大量消息,即使运行有限内存资源。为了避免在内存中存储大量消息的开销,您可以将 AMQ Broker 配置为将这些大型信息存储在文件系统中或数据库表中。

2.4. 监控和管理

AMQ Broker 提供了多个工具,可用于监控和管理您的代理。

AMQ 管理控制台
AMQ 管理控制台是一个可通过 Web 浏览器访问的 Web 界面。您可以使用 来监控网络健康状况、查看代理拓扑,以及创建和删除代理资源。
CLI
AMQ Broker 提供了 artemis CLI,供您用于管理代理。使用 CLI,您可以创建、启动和停止代理实例。CLI 还提供了一些用于管理消息日志的命令。
管理 API

AMQ Broker 提供广泛的管理 API。您可以使用它来修改代理的配置,创建新资源,检查这些资源,并与它们进行交互。客户端也可以使用管理 API 来管理代理并订阅管理通知。

AMQ Broker 提供了以下方法使用管理 API:

  • Java 管理扩展(JMX)- JMX 是用于管理 Java 应用程序的标准技术。代理的管理操作通过 AMQ MBean 接口公开。
  • JMS API - 使用标准 JMS 消息将管理操作发送到特殊的管理 JMS 队列。
日志
每个代理实例都会记录错误消息、警告和其他与代理相关的信息和活动。您可以配置日志级别、日志文件的位置和日志格式。然后,您可以使用生成的日志文件来监控代理并诊断错误条件。

第 3 章 安装 AMQ Broker

AMQ Broker 作为平台独立存档文件发布。要在您的系统中安装 AMQ Broker,您必须下载存档并提取内容。您还应该了解存档中包含的目录。

先决条件

3.1. 下载 AMQ Broker 归档

AMQ Broker 作为平台独立存档文件发布。您可以从红帽客户门户网站下载它。

先决条件

步骤

  1. 在 Web 浏览器中,导航到 https://access.redhat.com/downloads/ 并登录。

    此时会显示 Product Downloads 页面。

  2. JBoss Integration and Automation 部分中,点 Red Hat AMQ Broker 链接。

    此时将显示 Software Downloads 页面。

  3. Version 下拉菜单中选择所需的 AMQ Broker 版本。
  4. Releases 选项卡中,点您要下载的特定 AMQ Broker 文件的 Download 链接。

3.2. 在 Linux 中提取 AMQ Broker 归档

如果要在 Red Hat Enterprise Linux 上安装 AMQ Broker,请为 AMQ Broker 创建新的用户帐户,然后从安装存档中提取内容。

步骤

  1. 创建一个名为 amq-broker 的新用户,并为其提供密码。

    $ sudo useradd amq-broker
    $ sudo passwd amq-broker
    Copy to Clipboard Toggle word wrap
  2. 创建目录 /opt/redhat/amq-broker,并使新的 amq-broker 用户和组作为其所有者。

    $ sudo mkdir /opt/redhat
    $ sudo mkdir /opt/redhat/amq-broker
    $ sudo chown -R amq-broker:amq-broker /opt/redhat/amq-broker
    Copy to Clipboard Toggle word wrap
  3. 将存档的所有者更改为新用户。

    $ sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
    Copy to Clipboard Toggle word wrap
  4. 将安装存档移到您刚才创建的目录中。

    $ sudo mv amq-broker-7.x.x-bin.zip /opt/redhat/amq-broker
    Copy to Clipboard Toggle word wrap
  5. 以新的 amq-broker 用户身份,使用 unzip 命令提取内容。

    $ su - amq-broker
    $ cd /opt/redhat/amq-broker
    $ unzip <archive-name>.zip
    $ exit
    Copy to Clipboard Toggle word wrap

    创建类似于 amq-broker-7.8 的目录。在文档中,此位置被称为 <install-dir>

3.3. 在 Windows 系统中提取 AMQ Broker 归档

如果要在 Windows 系统上安装 AMQ Broker,请为 AMQ Broker 创建新目录文件夹,然后将内容提取到其中。

步骤

  1. 使用 Windows Explorer 在所需驱动器符上创建目录文件夹 \redhat\amq-broker

    例如:C:\redhat\amq-broker

  2. 使用 Windows 资源管理器将安装存档移到您刚才创建的目录中。
  3. \redhat\amq-broker 目录中,右键单击安装存档 zip 文件并选择" 提取所有"。

    创建类似于 amq-broker-7.8 的目录。在文档中,此位置被称为 <install-dir>

3.4. 了解 AMQ Broker 安装存档内容

通过提取存档创建的目录是 AMQ Broker 安装的顶级目录。该目录被称为 <install-dir>,并包含以下内容:

Expand
这个目录…​contains…​

<install-dir>/web/api

API 文档.

<install-dir>/bin

运行 AMQ Broker 所需的二进制文件和脚本。

<install-dir>/etc

配置文件。

<install-dir>/examples

JMS 和 Java EE 示例.

<install-dir>/lib

运行 AMQ Broker 所需的 JAR 和库。

<install-dir>/schema

用于验证 AMQ Broker 配置的 XML 模式。

<install-dir>/web

AMQ Broker 运行时载入的 web 上下文。

第 4 章 创建独立代理

您可以通过在本地计算机上创建独立代理实例、启动和生成以及生成和使用一些测试消息来快速开始使用 AMQ Broker。

先决条件

4.1. 创建代理实例

代理实例是一个包含代理配置和运行时数据的目录。要创建新代理实例,首先为代理实例创建一个目录,然后使用 artemis create 命令创建代理实例。

此流程演示了如何在本地机器上创建一个简单的独立代理。代理使用基本的默认配置,并使用任何受支持的消息传递协议接受客户端的连接。

步骤

  1. 为代理实例创建一个目录。

    Expand
    如果您使用…​do this…​

    Red Hat Enterprise Linux

    1. 创建新目录,以用作代理实例的位置。

      $ sudo mkdir /var/opt/amq-broker
      Copy to Clipboard Toggle word wrap
    2. 分配您在安装过程中创建的用户。

      $ sudo chown -R amq-broker:amq-broker /var/opt/amq-broker
      Copy to Clipboard Toggle word wrap

    Windows

    使用 Windows Explorer 创建新文件夹,以用作代理实例的位置。

  2. 使用 artemis create 命令创建代理。

    Expand
    如果您使用…​do this…​

    Red Hat Enterprise Linux

    1. 切换到安装期间创建的用户帐户。

      $ su - amq-broker
      Copy to Clipboard Toggle word wrap
    2. 更改到为代理实例创建的目录。

      $ cd /var/opt/amq-broker
      Copy to Clipboard Toggle word wrap
    3. 在代理实例的 目录中,创建代理实例。

      $ <install-dir>/bin/artemis create mybroker
      Copy to Clipboard Toggle word wrap

    Windows

    1. 从您为代理实例创建的目录中打开命令提示符。
    2. 在代理实例的 目录中,创建代理实例。

      > <install-dir>\bin\artemis.cmd create mybroker
      Copy to Clipboard Toggle word wrap
  3. 按照 artemis create 提示配置代理实例。

    例 4.1. 使用 arte mis create 配置代理实例

    $ /opt/redhat/amq-broker/bin/artemis create mybroker
    
    Creating ActiveMQ Artemis instance at: /var/opt/amq-broker/mybroker
    
    --user: is mandatory with this configuration:
    Please provide the default username:
    admin
    
    --password: is mandatory with this configuration:
    Please provide the default password:
    
    --role: is mandatory with this configuration:
    Please provide the default role:
    amq
    
    --allow-anonymous | --require-login: is mandatory with this configuration:
    Allow anonymous access? (Y/N):
    Y
    
    Auto tuning journal ...
    done! Your system can make 19.23 writes per millisecond, your journal-buffer-timeout will be 52000
    
    You can now start the broker by executing:
    
    "/var/opt/amq-broker/mybroker/bin/artemis" run
    
    Or you can run the broker in the background using:
    
    "/var/opt/amq-broker/mybroker/bin/artemis-service" start
    Copy to Clipboard Toggle word wrap

4.2. 启动代理实例

创建代理实例后,您可以使用 artemis run 命令启动它。

步骤

  1. 切换到安装期间创建的用户帐户。

    $ su - amq-broker
    Copy to Clipboard Toggle word wrap
  2. 使用 artemis run 命令启动代理实例。

    $ /var/opt/amq-broker/mybroker/bin/artemis run
    
              __  __  ____    ____            _
        /\   |  \/  |/ __ \  |  _ \          | |
       /  \  | \  / | |  | | | |_) |_ __ ___ | | _____ _ __
      / /\ \ | |\/| | |  | | |  _ <| '__/ _ \| |/ / _ \ '__|
     / ____ \| |  | | |__| | | |_) | | | (_) |   <  __/ |
    /_/    \_\_|  |_|\___\_\ |____/|_|  \___/|_|\_\___|_|
    
    Red Hat JBoss AMQ 7.2.1.GA
    
    10:53:43,959 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
    10:53:44,076 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
    10:53:44,099 INFO  [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
    ...
    Copy to Clipboard Toggle word wrap

    代理启动并显示使用以下信息的日志输出:

    • 事务日志和集群配置的位置。
    • 用于消息持久性的日志类型(本例中为AIO)。
    • 可以接受客户端连接的 URI。

      默认情况下,端口 61616 可以接受任何受支持的协议(CORE、MQTT、AMQP、STOMP、HORNETQ 和 OPENWIRE)的连接。另外,每个协议都有单独的端口。

    • Web 控制台位于 http://localhost:8161
    • Jolokia 服务(JMX over REST)位于 http://localhost:8161/jolokia

4.3. 生成和消耗测试消息

启动代理后,您应该验证它是否在正确运行。这涉及生成一些测试消息,将它们发送到代理,然后消耗它们。

步骤

  1. 使用 artemis producer 命令生成一些测试消息,并将它们发送到代理。

    此命令将 100 个消息发送到 helloworld 地址,该地址会在代理上自动创建。制作者使用默认端口 61616 连接代理,后者接受所有支持的消息传递协议。

    $ /opt/redhat/amq-broker/amq-broker-7.2.0/bin/artemis producer --destination helloworld --message-count 100 --url tcp://localhost:61616
    Producer ActiveMQQueue[helloworld], thread=0 Started to calculate elapsed time ...
    
    Producer ActiveMQQueue[helloworld], thread=0 Produced: 100 messages
    Producer ActiveMQQueue[helloworld], thread=0 Elapsed time in second : 1 s
    Producer ActiveMQQueue[helloworld], thread=0 Elapsed time in milli second : 1289 milli seconds
    Copy to Clipboard Toggle word wrap
  2. 使用 Web 控制台查看代理中存储的信息。

    1. 在 Web 浏览器中,导航到 http://localhost:8161
    2. 使用创建代理实例时创建的默认用户名和密码登录到控制台。

      此时会显示 Attributes 选项卡。

    3. Attributes 选项卡中,导航到 menu:[addresses > helloworld > queue > "anycast" > helloworld]。

      在上一步中,您会将消息发送到 helloworld 地址。这会创建一个带有队列(也称为 helloworld )的新广播 helloworld地址。Message count 属性显示发送到 helloworld 的所有 100 消息都存储在此队列中。

      图 4.1. 消息计数

  3. 使用 artemis consumer 命令,消耗代理上存储了 50 个消息。

    这个命令会消耗您发送到代理的 50 个信息。

    $ /opt/redhat/amq-broker/amq-broker-7.2.0/bin/artemis consumer --destination helloworld --message-count 50 --url tcp://localhost:61616
    
    Consumer:: filter = null
    Consumer ActiveMQQueue[helloworld], thread=0 wait until 50 messages are consumed
    Consumer ActiveMQQueue[helloworld], thread=0 Consumed: 50 messages
    Consumer ActiveMQQueue[helloworld], thread=0 Consumer thread finished
    Copy to Clipboard Toggle word wrap
  4. 在 Web 控制台中,验证 消息数 现在是否为 50。

    消耗了 50 个消息,它保留了 helloworld 队列中存储 50 个消息。

  5. 停止代理,并验证 50 个剩余的消息仍然存储在 helloworld 队列中。

    1. 在运行代理的终端中,按 Ctrl+C 来停止代理。
    2. 重启代理。

      $ /var/opt/amq-broker/mybroker/bin/artemis run
      Copy to Clipboard Toggle word wrap
    3. 在 Web 控制台中,返回 helloworld 队列,并验证队列中存储了 50 个消息。
  6. 使用剩余的 50 信息。

    $ /opt/redhat/amq-broker/amq-broker-7.2.0/bin/artemis consumer --destination helloworld --message-count 50 --url tcp://localhost:61616
    
    Consumer:: filter = null
    Consumer ActiveMQQueue[helloworld], thread=0 wait until 50 messages are consumed
    Consumer ActiveMQQueue[helloworld], thread=0 Consumed: 50 messages
    Consumer ActiveMQQueue[helloworld], thread=0 Consumer thread finished
    Copy to Clipboard Toggle word wrap
  7. 在 Web 控制台中,验证 Message 计数 是否为 0。

    helloworld 队列中存储的所有消息都被消耗,队列现在为空。

4.4. 停止代理实例

创建独立代理并生成并消耗测试消息后,您可以停止代理实例。

这个步骤会手动停止代理,这会强制关闭所有客户端连接。在生产环境中,您应该将代理配置为正常停止,以便正确关闭客户端连接。

步骤

  • 使用 artemis stop 命令停止代理实例:

    $ /var/opt/amq-broker/mybroker/bin/artemis stop
    2018-12-03 14:37:30,630 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes
    Server stopped!
    Copy to Clipboard Toggle word wrap

第 5 章 运行 AMQ Broker 示例

AMQ Broker 附带了许多示例程序,演示产品的基本和高级功能。您可以运行这些示例来熟悉 AMQ Broker 的功能。

要运行 AMQ Broker 示例,您必须首先通过安装和配置 Apache Maven 和 AMQ Maven 存储库来设置机器。然后,您可以使用 Maven 运行 AMQ Broker 示例程序。

5.1. 设置机器以运行 AMQ Broker 示例

在运行包含的 AMQ Broker 示例程序前,您必须首先下载并安装 Maven 和 AMQ Maven 存储库,并配置 Maven 设置文件。

5.1.1. 下载并安装 Maven

运行 AMQ Broker 示例需要 Maven。

步骤

  1. 前往 Apache Maven Download 页面,下载您的操作系统的最新发行版。
  2. 为您的操作系统安装 Maven。

    如需更多信息,请参阅安装 Apache Maven

其他资源

5.1.2. 下载并安装 AMQ Maven 存储库

在机器上安装 Maven 后,您下载并安装 AMQ Maven 存储库。此软件仓库包括在红帽客户门户网站中。

  1. 在 Web 浏览器中,导航到 https://access.redhat.com/downloads/ 并登录。

    此时会显示 Product Downloads 页面。

  2. Integration and Automation 部分中,点 Red Hat AMQ Broker 链接。

    此时将显示 Software Downloads 页面。

  3. Version 下拉菜单中选择所需的 AMQ Broker 版本。
  4. Releases 选项卡中,单击 AMQ Broker Maven Repository 的 Download 链接。

    AMQ Maven 存储库文件作为 zip 文件下载。

  5. 在您的 计算机上,将 AMQ 存储库文件解压缩到您选择的目录中。

    在您的 计算机上创建一个新目录,其中包含名为 maven-repository/ 的 子目录中的 Maven 存储库。

5.1.3. 配置 Maven 设置文件

下载并安装 AMQ Maven 存储库后,您必须将存储库添加到 Maven 设置文件中。

步骤

  1. 打开 Maven settings.xml 文件。

    settings.xml 文件通常位于 ${user.home}/.m2/ 目录中。

    • 对于 Linux,这是 ~/.m2/
    • 对于 Windows,这是 \Documents 和 Settings\.m2\\Users\.m2\

    如果您没有在 ${user.home}/.m2/ 中找到 settings.xml 文件,则 Maven 安装的 conf/ 目录中有一个默认版本。将 默认设置.xml 文件复制到 ${user.home}/.m2/ 目录。

  2. <profiles> 元素中,为 AMQ Maven 存储库添加配置集。

    <!-- Configure the JBoss AMQ Maven repository -->
    <profile>
      <id>jboss-amq-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-amq-maven-repository</id>
          <url>file://<JBoss-AMQ-repository-path></url>  
    1
    
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-amq-maven-repository</id>
          <url>file://<JBoss-AMQ-repository-path></url>  
    2
    
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    Copy to Clipboard Toggle word wrap
    1 2
    <JBoss-AMQ-repository-path> 替换为您安装的 Maven 存储库的位置。通常,此位置以 /maven-repository 结尾。例如:
    <url>file:///path/to/repo/amq-broker-7.2.0-maven-repository/maven-repository</url>
    Copy to Clipboard Toggle word wrap
  3. <activeProfiles> 元素中,将 AMQ Maven 存储库设置为活跃:

    <activeProfiles>
      <activeProfile>jboss-amq-maven-repository</activeProfile>
    ...
    </activeProfiles>
    Copy to Clipboard Toggle word wrap
  4. 如果您从 Maven 安装中复制了 默认设置.xml,如果默认注释掉,请取消对 <active-profiles> 部分的注释。
  5. 保存并关闭 settings.xml
  6. 删除缓存的 ${user.home}/.m2/repository/ 目录。

    如果您的 Maven 存储库包含过时的工件,在构建或部署项目时可能会遇到以下 Maven 错误消息之一:

    • 缺少工件 <artifact-name>
    • [ERROR] Failed to execute target on project-name>; Could not resolve dependencies for <project-name>

5.2. AMQ Broker 示例程序

AMQ Broker 附带超过 90 个示例程序,它们演示了如何使用 AMQ Broker 的功能和支持的消息传递协议。

示例程序位于 <install-dir>/examples 中,并包含以下内容:

  • 功能

    特定于代理的功能,例如:

    • 集群 - 显示负载均衡和分布功能的示例
    • HA - 显示故障转移和重新连接功能示例
    • perf - 示例允许您在服务器上运行几个性能测试
    • standard - 演示各种代理功能的示例
    • 子模块 - 集成的外部模块示例
  • 协议

    每个支持的消息传递协议示例:

    • AMQP
    • MQTT
    • OpenWire
    • STOMP

其他资源

5.3. 运行 AMQ Broker 示例程序

AMQ Broker 附带了许多示例程序,演示产品的基本和高级功能。您可以使用 Maven 来运行这些程序。

先决条件

步骤

  1. 进入您要运行的示例目录。

    示例程序位于 <install-dir>/examples 中。例如:

    $ cd <install-dir>/examples/features/standard/queue
    Copy to Clipboard Toggle word wrap
  2. 使用 mvn clean verify 命令来运行示例程序。

    Maven 启动代理并运行示例程序。第一次运行示例程序时,Maven 会下载任何缺少的依赖项,这可能需要一些时间才能运行。

    在本例中,运行队列 示例程序创建一个制作者,发送测试消息,然后创建一个接收消息的消费者:

    $ mvn clean verify
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------< org.apache.activemq.examples.broker:queue >--------------
    [INFO] Building ActiveMQ Artemis JMS Queue Example 2.6.1.amq-720004-redhat-1
    [INFO] --------------------------------[ jar ]---------------------------------
    ...
    server-out:2018-12-05 16:37:57,023 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [0.0.0.0, nodeID=06f529d3-f8d6-11e8-9bea-0800271b03bd]
    [INFO] Server started
    [INFO]
    [INFO] --- artemis-maven-plugin:2.6.1.amq-720004-redhat-1:runClient (runClient) @ queue ---
    Sent message: This is a text message
    Received message: This is a text message
    [INFO]
    [INFO] --- artemis-maven-plugin:2.6.1.amq-720004-redhat-1:cli (stop) @ queue ---
    server-out:2018-12-05 16:37:59,519 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [06f529d3-f8d6-11e8-9bea-0800271b03bd] stopped, uptime 3.734 seconds
    server-out:Server stopped!
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  48.681 s
    [INFO] Finished at: 2018-12-05T16:37:59-05:00
    [INFO] ------------------------------------------------------------------------
    Copy to Clipboard Toggle word wrap
    注意

    些示例程序使用 UDP 集群,默认情况下可能无法在您的环境中工作。要成功运行这些示例,请将定向到 224.0.0.0 的流量重定向到回环接口:

    $ sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev lo
    Copy to Clipboard Toggle word wrap

第 6 章 后续步骤

安装 AMQ Broker 并创建带有默认配置设置的独立代理后,您可以将其配置为满足消息传递要求,将消息传递客户端应用程序连接到此代理,并监控和管理它。其他资源可用于帮助您完成这些目标。

配置代理

使用 配置 AMQ Broker 配置代理以满足您的要求。您可以配置:

  • 接受客户端连接的代理
  • 地址空间(包括点对点和发布订阅消息传递)
  • 消息持久性
  • 代理资源消耗(包括资源限制、消息分页和大量消息支持)
  • 重复消息检测
  • 日志
保护代理

使用 配置 AMQ Broker 来实现以下任一方法来保护代理:

  • 客户机/匿名访问控制
  • 基本用户和密码访问控制
  • 基于证书的访问控制
  • LDAP 集成
  • Kerberos 集成
设置集群和高可用性
使用 配置 AMQ Broker 添加额外代理来组成代理集群并提高消息传递吞吐量。您还可以配置高可用性以提高消息传递可靠性。
创建消息传递客户端应用程序
使用 AMQ Clients Overview 了解 AMQ 客户端以及如何帮助您创建连接到代理的消息传递客户端应用程序以及生成和使用消息。
监控和管理代理
使用 管理 AMQ Broker 来监控和管理代理(或代理)运行后。

附录 A. 使用您的订阅

AMQ 通过软件订阅提供。要管理您的订阅,请在红帽客户门户网站中访问您的帐户。

A.1. 访问您的帐户

步骤

  1. 请访问 access.redhat.com
  2. 如果您还没有帐户,请创建一个。
  3. 登录到您的帐户。

A.2. 激活订阅

步骤

  1. 请访问 access.redhat.com
  2. 导航到 My Subscriptions
  3. 导航到 Activate a subscription 并输入 16 位的激活号。

A.3. 下载发行文件

要访问 .zip、.tar.gz 和其他发行文件,请使用客户门户网站查找用于下载的相关文件。如果您使用 RPM 软件包或 Red Hat Maven 软件仓库,则不需要这一步。

步骤

  1. 打开浏览器,再登录红帽客户门户网站 产品下载页,网址为 access.redhat.com/downloads
  2. 在 INTEGRATION 和 AUTOMATION 类别中找到 Red Hat AMQ 条目。
  3. 选择所需的 AMQ 产品。此时会打开 Software Downloads 页面。
  4. 点您的组件的 Download 链接。

A.4. 为软件包注册您的系统

要在 Red Hat Enterprise Linux 中安装这个产品的 RPM 软件包,必须注册系统。如果您使用下载的发行版本文件,则不需要这一步。

步骤

  1. 请访问 access.redhat.com
  2. 进入 Registration Assistant
  3. 选择您的 OS 版本并继续进行下一页。
  4. 使用系统终端中列出的命令来完成注册。

有关注册系统的更多信息,请参阅以下资源之一:

附录 B. Apache Maven 简介

Apache Maven 是 Java 应用程序开发中使用的分布式构建自动化工具,用于创建、管理和构建软件项目。用于运行 AMQ Broker 安装中包含的 AMQ Broker 示例程序。

运行 AMQ Broker 示例程序需要您与几个 Maven 组件交互:

项目对象模型(POM)文件
存储关于应该如何构建项目的信息。
软件仓库
保存构建工件和依赖项。
Maven 设置文件
存储特定于用户的配置信息。

B.1. Maven POM 文件

Maven 使用名为 Project Object Model(POM)文件的标准配置文件来定义项目并管理构建流程。它们确保项目正确构建且统一。POM 文件是 XML 文件(pom.xml)。

Maven 优先选择"协调配置"。因此,POM 文件需要最少的配置,默认为所有其他值。POM 文件可以为 Maven 项目定义以下信息:

  • 源、测试和目标目录的位置
  • 项目依赖项
  • 插件软件仓库
  • 项目可以执行的目标
  • 有关项目的其他详细信息,如版本、描述、开发人员、邮件列表、许可证等。

例 B.1. pom.xml 文件示例

这个基本 pom.xml 文件演示了 POM 文件的最低要求:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jboss.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
</project>
Copy to Clipboard Toggle word wrap

其它资源

B.2. Maven 软件仓库

Maven 存储库存储 Java 库、插件和其他构建构件。软件仓库可以是本地或远程。

默认公共存储库是 Maven 2 Central Repository,但存储库可以是公司内部的私有和内部存储库,以便可以在开发团队之间共享通用构件。

也可从第三方获取存储库。AMQ 包含一个 Maven 软件仓库,其中包含已测试和支持的 AMQ 7.8 Java 软件包和依赖项的版本。

其他资源

  • 有关 Maven 存储库的更多信息,请参阅存储库 简介

B.3. Maven 设置文件

Maven settings.xml 文件包含 Maven 特定于用户的配置信息。它包含不得通过 pom.xml 文件分发的信息,如开发人员身份、代理信息、本地存储库位置,以及其他特定于用户的设置。

settings.xml 文件位于两个位置:

  • 在 Maven 安装中:

    settings.xml 文件位于 <maven-install-dir>/conf/ 目录中。这些设置被称为 全局设置。默认的 Maven 设置文件是一个模板,您可以复制并用作用户设置文件的起点。

  • 在用户安装中:

    settings.xml 文件位于 ${user.home}/.m2/ 目录中。如果 Maven 和 user settings.xml 文件都存在,则内容将合并。有重叠的位置,优先选择用户的 settings.xml 文件。

例 B.2. Maven 设置文件

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <!-- Configure the JBoss AMQ Maven repository -->
    <profile>
      <id>jboss-amq-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-amq</id>
          <url>file:///path/to/repo/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-amq-maven-plugin-repository</id>
          <url>file://path/to/repo</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!-- Optionally, make the repository active by default -->
    <activeProfile>jboss-amq-maven-repository</activeProfile>
  </activeProfiles>
</settings>
Copy to Clipboard Toggle word wrap

其他资源

修订到 2022-03-19 14:19:55 +1000

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat