(2)如何使用Artemis

1 Artemis服务器发行版目录结构

         |___ bin
         |
         |___ examples
         |      |___ common
         |      |___ features
         |      |___ perf
         |      |___ protocols
         |
         |___ lib
         |      |___ client
         |
         |___ schema
         |
         |___ web
                |___ api
                |___ hacking-guide
                |___ migration-guide
                |___ user-manual

 

  • Bin--存储运行Artemis的二进制和脚本文件
  • Examples--各类Artemis使用例子
  • Lib--Artemis运行所需的jar包和库
  • Schema--XML配置文件
  • Web--broker运行时加载的web环境
  • api--web环境下的api文档
  • user-manual--web环境下的用户手册

2 创建一个broker实例

    一个broker实例是包含broker进程关联的所有配置和运行时数据(如日志和数据文件)的目录,建议不要在${ARTEMIS_HOME}下创建实例目录,方便Artemis更容易升级。

    如下例子在/var/lib目录下创建一个broker实例于/var/lib/mybroker目录中

    cd /var/lib
    ${ARTEMIS_HOME}/bin/artemis create mybroker

    broker实例包含如下目录

  • bin:存储与实例关联的执行脚本
  • etc:存储实例的对应配置文件
  • date:存储实例的持久化消息数据文件
  • log:存储实例的日志文件
  • tmp:存储代理实例运行期间可以删除的临时文件

    创建broker实例命令选项

 $./artemis help create
 NAME
         artemis create - creates a new broker instance

SYNOPSIS
        artemis create [--addresses <addresses>] [--aio] [--allow-anonymous]
                [--autocreate] [--blocking] [--cluster-password <clusterPassword>]
                [--cluster-user <clusterUser>] [--clustered] [--data <data>]
                [--default-port <defaultPort>] [--disable-persistence]
                [--encoding <encoding>] [--etc <etc>] [--failover-on-shutdown] [--force]
                [--global-max-size <globalMaxSize>] [--home <home>] [--host <host>]
                [--http-host <httpHost>] [--http-port <httpPort>]
                [--java-options <javaOptions>] [--mapped] [--max-hops <maxHops>]
                [--message-load-balancing <messageLoadBalancing>] [--name <name>]
                [--nio] [--no-amqp-acceptor] [--no-autocreate] [--no-autotune]
                [--no-fsync] [--no-hornetq-acceptor] [--no-mqtt-acceptor]
                [--no-stomp-acceptor] [--no-web] [--paging] [--password <password>]
                [--ping <ping>] [--port-offset <portOffset>] [--queues <queues>]
                [--replicated] [--require-login] [--role <role>] [--shared-store]
                [--silent] [--slave] [--ssl-key <sslKey>]
                [--ssl-key-password <sslKeyPassword>] [--ssl-trust <sslTrust>]
                [--ssl-trust-password <sslTrustPassword>] [--use-client-auth]
                [--user <user>] [--verbose] [--] <directory>

OPTIONS --addresses <addresses>
             逗号分割的地址列表

--aio
             设置日志系统为asyncio(AIO异步非堵塞IO)

--allow-anonymous
             允许匿名使用, 相反的是需要登入,默认为必选在实例创建时输入

           --require-login (Default: input)

--autocreate
             自动创建地址. (default: true)

--blocking
             当指定地址跑满后是否堵塞生产者, 相反的是 --paging
             (Default: false)

--cluster-password <clusterPassword>
             使用集群的密码. (Default: input)

--cluster-user <clusterUser>
             使用集群的用户. (Default: input)

--clustered
             启用集群

--data <data>
            存储数据的目录。 路径可以是artemis.instance目录的绝对路径或相对路径 ('data' by default)

--default-port <defaultPort>
             artemis接收请求的端口 (Default:61616)

--disable-persistence
             禁用日志系统进行消息持久化

--encoding <encoding>
             文本文件使用的编码

--etc <etc>
             配置文件所在目录, 路径可以是artemis.instance目录的绝对路径或相对路径 ('etc' by default)

--failover-on-shutdown
             使用共享存储时有效: 是否关闭触发故障转移 (Default:false)

--force
             覆盖目标目录的配置

--global-max-size <globalMaxSize>
             消息数据允许使用的最大内存 (Default:
             Undefined, half of the system's memory)

--home <home>
             Artemis的安装目录

--host <host>
             broker的地址 (Default: 0.0.0.0 or input if clustered)

--http-host <httpHost>
             嵌入式web服务的主机地址 (Default: localhost)

--http-port <httpPort>
             嵌入式web服务的端口号 (Default: 8161)

--java-options <javaOptions>
             要传递给配置文件的额外java选项

--mapped
             将日志系统设置为映射.

--max-hops <maxHops>
             集群配置中的最大hop数

--message-load-balancing <messageLoadBalancing>
             集群的负载均衡策略. [ON_DEMAND (default) | STRICT |
             OFF]

--name <name>
             broker的名称 (Default: same as host)

--nio
             设置日志系统位nio.

--no-amqp-acceptor
             禁用APMQ.

--no-autocreate
             不允许自动创建地址.

--no-autotune
             禁用日志系统调教.

--no-fsync
             在日志系统中禁止将数据强制刷写到磁盘中 (channel.force(false) from java nio)
--no-hornetq-acceptor
             禁用hornetq.

--no-mqtt-acceptor
             禁用mqtt.

--no-stomp-acceptor
             禁用stomp.

--no-web
             将web-server定于从bootstrap.xml中删除

--paging
             地址跑满时将消息刷写到磁盘中, opposite of--blocking (Default: true)

--password <password>
             用户使用的密码 (Default: input)

--ping <ping>
             以逗号分隔的字符串,作为network-check-list传给broker. 当所有这些地址都无法使用访问时,broker将关闭

--port-offset <portOffset>
             设置每个接收器的端口

--queues <queues>
             逗号分隔的队列列表

--replicated
             启用broker复制

--require-login
             这个配置将要求使用用户密码进行操作, opposite of--allow-anonymous

--role <role>
             创建角色的名称 (Default: amq)

--shared-store
             启用broker共享存储

--silent
             禁用所有输入,并且可以对任何需要输入的地方进行最佳推测

--slave
             对共享(shared)或者复制(replicated)有效: 设定为从服务器

--ssl-key <sslKey>
             存放嵌入式web服务器的秘钥库路径

--ssl-key-password <sslKeyPassword>
             秘钥库密码

--ssl-trust <sslTrust>
             倘若客户端身份认证时的信任存储路径

--ssl-trust-password <sslTrustPassword>
             信任存储秘钥库密码

--use-client-auth
             启用嵌入式服务器的客户端身份验证

--user <user>
             用户名称 (Default: input)

--verbose
             添加执行的更多信息

--
             此选项可用于将命令行选项与参数列表分开(当参数可能被误认为命令行选项时很有用)

<directory>
            用于保存代理配置和数据的实例目录。 路径必须是可写的。

 

3.启动和停止broker实例

    启动broker实例:

    ${broker.instance.home}/bin/artemis run

    停止broker实例

    ${broker.instance.home}/bin/artemis stop

     实例运行时默认使用etc/bootstrap.xml配置,可以在运行选择使用其他配置。通过如下命令在运行时选择指定配置:

    ./artemis run --xml:path/to/bootstrap.xml

     对应broker实例运行的环境变量如ports、hosts、数据存储路径等,在linux系统中配置在etc/artemis.profile中,windows配置在etc/artemis.profile.cmd中。

4.服务器JVM设置

    运行脚本设置些JVM参数,建议使用并行垃圾收集算法来消除延迟并最大限度地减少大型GC暂停。默认情况下Artemis可使用最大RAM为1Gb,可以使用-Xms和-Xmx修改。

5.lib目录

    如果在Linux上使用了异步IO日志系统,需要将设置java.library.path,如果没有指定java.library.path(-Djava.library.path 指定依赖的非java库文件路径 ),则JVM将使用环境变量LD_LIBRARY_PATH。并且需要确保在Linux上安装了libaio。

6.配置

    Artemis核心服务配置包含在broker.xml中,大多数情况下默认配置能很好的工作。每个属性都可以默认,意味着单个空配置是有效的配置文件。

7.升级broker

    Artemis采用主目录和实例区分的操作,使升级更加简单便捷,多个实例共享同个主目录资源。

    升级的一般性过程:

    进入broker实例的etc目录下,修改artemis.profile中升级相关的属性: ARTEMIS_HOME='/path/to/apache-artemis-version'。ARTEMIS_HOME属性将实例与主目录链接,其他升级步骤查看versions文档。

注:此系列文章为Apache Artemis V2.6.2官方使用文档的简要翻译文档(非完全按照官方文档排版进行翻译,有删减),个人能力有限如有错误请谅解。源文档地址:http://activemq.apache.org/artemis/docs/latest/index.html

猜你喜欢

转载自blog.csdn.net/guiliguiwang/article/details/82116680