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

(2)如何使用Artemis相关推荐

  1. Apache Artemis —— 非堵塞 Java 嵌入消息服务

    Apache ActiveMQ Artemis 提供了一个非堵塞架构,实现了超高性能的 Java 对象消息服务器.其核心只依赖一个 netty.jar 文件.该项目的目的是为你的 Java 应用提供一 ...

  2. apache.camel_在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...

    apache.camel 从历史上看, Apache ActiveMQ消息代理最初是在大型消息以MB为单位而不是GB的情况下创建的,就像您今天所做的那样. 下一代代理Apache ActiveMQ A ...

  3. 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...

    从历史上看, Apache ActiveMQ消息代理最初是在大型消息以MB为单位而不是GB的情况下创建的,就像您今天所做的那样. 下一代代理Apache ActiveMQ Artemis(或仅是Art ...

  4. 使用ActiveMQ Artemis在两个WildFly服务器之间构建水平JMS桥

    有时有必要将不同的Message Broker连接在一起. 在企业消息传递中,此方案称为桥接. 可以使用JMS和其他协议(例如AMQP,ActiveMQ Artemis核心协议)来完成. 该博客文章重 ...

  5. artemis服务_artemis小结

    序 本文主要小结一下artemis的一些知识点 artemis知识点 消息模型 它实现了mqtt.aqmp.stomp协议,jms的api,还提供了rest的api:其模型跟aqmp很像,用addre ...

  6. Artemis流量控制(11)

    流控制用于限制客户端和服务器之间或服务器和另一个服务器之间的数据流,以防止客户端或服务器被数据淹没. 1.消费者流量控制 当客户端在消费消息时可以控制服务器和客户端之间的数据流.出于性能原因,客户端通 ...

  7. (1)Artemis简介

    1.简介 Artemis是通过基于netty的非堵塞IO架构开发的,拥有出色的性能.由jboss捐献的HornetQ的衍生版本,可能作为下一代ActiveMQ的存在. 选择Artemis的原因开源.高 ...

  8. artemis服务_Artemis安装

    Linux下安装Artemis Artemis是下一代的ActiveMQ,也就是说目前的ActiveMQ是5.x,Artemis将是6.x 1. 下载 官网下载地址: wget https://dow ...

  9. artemis服务_集成Artemis

    ActiveMQ Artemis是一个JMS服务器,在集成JMS一节中我们已经详细讨论了如何在Spring中集成Artemis,本节我们讨论如何在Spring Boot中集成Artemis. 我们还是 ...

  10. Artemis集群(18)

    Artemis集群允许将Artemis服务组组合在一起,便于共享消息的负载处理.集群中每个活动节点都是一个活动的Artemis服务,它管理自己的消息并处理自己的连接.集群中的每个节点都通过broker ...

最新文章

  1. 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
  2. 我眼中真正优秀的CTO
  3. PyQT4编程实例之小财务软件
  4. AVFoundation 简介
  5. 【C语言简单说】八:分支结构之if...else...(2)
  6. CSS样式重叠,前端显示的效果
  7. 嵌入式操作系统内核原理和开发(地址空间)
  8. 如何在Sitecore CMS中打开内容编辑器
  9. Hadoop2源码分析-YARN 的服务库和事件库
  10. imx226_【索尼IMX136LQJ-C、IMX236LQJ-C、IMX226CQJ-C、IMX274LQC-C、】价格_厂家 - 中国供应商...
  11. 自学python就业_Python就业方向有哪些呀?适合小白学习吗?
  12. 《VERSE Versatile Graph Embeddings from Similarity Measures》阅读笔记
  13. 解决微信屏蔽淘宝链接的方法
  14. PS经典教程:从零开始设计一个漂亮的网页
  15. 2021年Android工作或许更难找,面试资料分享
  16. 【三子棋】C语言实现简易三子棋
  17. 艰难的抉择,阿里“小前台、大中台”的解读
  18. 拍好人像的六个好招数
  19. 我国有较大的AI大模型应用市场,在应用领域具有优势
  20. titan rtx怎么样

热门文章

  1. 形态学操作——开运算与闭运算
  2. ps无法启动因为计算机中丢失api ms,解决win8下ps提示“丢失api-ms-win-crt-runtime-l1-1-0.dll”的方法...
  3. Nginx 设置域名转发到指定端口
  4. 基于java web技术的班级同学录网站-计算机毕业设计
  5. 影响计算机速度的有哪些配件,影响电脑上网速度的重要因素有哪些?
  6. 小程序云开发,CMS内容管理系统
  7. 环签名——典型的数字签名技术
  8. SourceTree - 学习/使用
  9. Docker拉取Solace pubsub+镜像timeout的问题
  10. apktool 用法命令详解