1 Artemis服务器发行版目录结构
|___ bin
|
|___ examples
| |___ common
| |___ features
| |___ perf
| |___ protocols
|
|___ lib
| |___ client
|
|___ schema
|
|___ web
|___ api
|___ hacking-guide
|___ migration-guide
|___ user-manual
2 创建一个broker实例
一个broker实例是包含broker进程关联的所有配置和运行时数据(如日志和数据文件)的目录,建议不要在${ARTEMIS_HOME}下创建实例目录,方便Artemis更容易升级。
如下例子在/var/lib目录下创建一个broker实例于/var/lib/mybroker目录中
cd /var/lib
${ARTEMIS_HOME}/bin/artemis create mybroker
broker实例包含如下目录
创建broker实例命令选项
$./artemis help create
NAME
artemis create - creates a new broker instance
SYNOPSIS
artemis create [--addresses
[--autocreate] [--blocking] [--cluster-password
[--cluster-user
[--default-port
[--encoding
[--global-max-size
[--http-host
[--java-options
[--message-load-balancing
[--nio] [--no-amqp-acceptor] [--no-autocreate] [--no-autotune]
[--no-fsync] [--no-hornetq-acceptor] [--no-mqtt-acceptor]
[--no-stomp-acceptor] [--no-web] [--paging] [--password
[--ping
[--replicated] [--require-login] [--role
[--silent] [--slave] [--ssl-key
[--ssl-key-password
[--ssl-trust-password
[--user
OPTIONS --addresses
逗号分割的地址列表
--aio
设置日志系统为asyncio(AIO异步非堵塞IO)
--allow-anonymous
允许匿名使用, 相反的是需要登入,默认为必选在实例创建时输入
--require-login (Default: input)
--autocreate
自动创建地址. (default: true)
--blocking
当指定地址跑满后是否堵塞生产者, 相反的是 --paging
(Default: false)
--cluster-password
使用集群的密码. (Default: input)
--cluster-user
使用集群的用户. (Default: input)
--clustered
启用集群
--data
存储数据的目录。 路径可以是artemis.instance目录的绝对路径或相对路径 ('data' by default)
--default-port
artemis接收请求的端口 (Default:61616)
--disable-persistence
禁用日志系统进行消息持久化
--encoding
文本文件使用的编码
--etc
配置文件所在目录, 路径可以是artemis.instance目录的绝对路径或相对路径 ('etc' by default)
--failover-on-shutdown
使用共享存储时有效: 是否关闭触发故障转移 (Default:false)
--force
覆盖目标目录的配置
--global-max-size
消息数据允许使用的最大内存 (Default:
Undefined, half of the system's memory)
--home
Artemis的安装目录
--host
broker的地址 (Default: 0.0.0.0 or input if clustered)
--http-host
嵌入式web服务的主机地址 (Default: localhost)
--http-port
嵌入式web服务的端口号 (Default: 8161)
--java-options
要传递给配置文件的额外java选项
--mapped
将日志系统设置为映射.
--max-hops
集群配置中的最大hop数
--message-load-balancing
集群的负载均衡策略. [ON_DEMAND (default) | STRICT |
OFF]
--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
用户使用的密码 (Default: input)
--ping
以逗号分隔的字符串,作为network-check-list传给broker. 当所有这些地址都无法使用访问时,broker将关闭
--port-offset
设置每个接收器的端口
--queues
逗号分隔的队列列表
--replicated
启用broker复制
--require-login
这个配置将要求使用用户密码进行操作, opposite of--allow-anonymous
--role
创建角色的名称 (Default: amq)
--shared-store
启用broker共享存储
--silent
禁用所有输入,并且可以对任何需要输入的地方进行最佳推测
--slave
对共享(shared)或者复制(replicated)有效: 设定为从服务器
--ssl-key
存放嵌入式web服务器的秘钥库路径
--ssl-key-password
秘钥库密码
--ssl-trust
倘若客户端身份认证时的信任存储路径
--ssl-trust-password
信任存储秘钥库密码
--use-client-auth
启用嵌入式服务器的客户端身份验证
--user
用户名称 (Default: input)
--verbose
添加执行的更多信息
--
此选项可用于将命令行选项与参数列表分开(当参数可能被误认为命令行选项时很有用)
用于保存代理配置和数据的实例目录。 路径必须是可写的。
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