Artemis架构解析

目录

 

前言

1.Artemis Broker

1.1 外部工具与接口

1.1.1 命令行工具

 1.1.2 RESTful API

1.1.3 JMX

1.1.4 管理控制页面

1.2 Artemis核心功能

1.2.1 接入层(Acceptor)

1.2.2 安全层(Security)

1.2.3 协议管理(Protocol Management)

1.2.4 服务层(Server)

2.Artemis高可用

2.1 主从复制

2.2 共享存储


前言

    Artemis是一款基于Netty NIO的高性能消息中间件,它的前身为JBoss的HornetQ,2015捐献给了Apache ActiveMQ社区,并命名为Apache Artemis。

    本文将对Artemis的架构做一个简单的解析,将Artemis的架构拆分为两块:Artemis Broker的解析(也可以说是单点实例的Artemis消息代理内部运行架构解析)和Artemis高可用架构解析。

1.Artemis Broker

    如下图为Artemis Broker的架构图,Artemis Broker按其所提供的核心功能及外部工具与接口两部分构成。将Broker做出这样的划分实际上为了本文的结构考虑,核心功能和外部工具与接口两部分都是Artemis Broker的组成部分。

1.1 外部工具与接口

1.1.1 命令行工具

    Artemis为用户提供了功能丰富的命令行工具,用户可以通过运行Artemis的${INSTANCE}/bin目录下的Artemis脚本加上对应的参数来调用命令行工具,如运行Artemis Broker实例;

    ${INSTANCE}/bin/Artemis run

    Artemis命令行工具构建于Airline之上,Airline是一个基于Java注解解析命令行结构的框架。Artemis中所有的命令工具都实现org.apache.activemq.artemis.cli.commands.Action接口。基于Action的命令行工具层级结构:

HelpAddress (address组的帮助)
HelpData (data组的帮助)
Mask (屏蔽密码操作)
HelpQueue (queue组的帮助命令)
ActionAbstract (org.apache.activemq.artemis.cli.commands)
    Migrate1X (迁移1.x版本配置命令)
    XmlDataImporter (导入XML消息数据命令)
    InputAbstract (org.apache.activemq.artemis.cli.commands)
        ConnectionAbstract (org.apache.activemq.artemis.cli.commands.messages)
            AbstractAction (org.apache.activemq.artemis.cli.commands)
                QueueAbstract (org.apache.activemq.artemis.cli.commands.queue)
                    UpdateQueue (更新一个队列命令)
                    CreateQueue (创建一个队列或topic命令)
                DeleteQueue (删除队列命令)
                AddressAbstract (org.apache.activemq.artemis.cli.commands.address)
                    ShowAddress (获取地址信息命令)
                    CreateAddress (创建地址命令)
                    UpdateAddress (更新地址命令)
                    DeleteAddress (删除地址命令)
                StatQueue (打印出与队列相关的基本统计数据命令)
            DestAbstract (org.apache.activemq.artemis.cli.commands.messages)
                Browse (浏览指定实例消息命令)
                Producer (发送消息到指定实例命令)
                Consumer (消费指定实例命令)
        UserAction (org.apache.activemq.artemis.cli.commands.user)
            PasswordAction (org.apache.activemq.artemis.cli.commands.user)
                ResetUser (重置用户密码或角色命令)
                AddUser (添加一个新用户命令)
            RemoveUser (删除已存在用户命令)
            ListUser (列出已存在用户命令)
        Create (创建Artemis实例命令)
    Configurable (org.apache.activemq.artemis.cli.commands)
        Stop (停止Artemis实例命令)
        Kill (杀死以--allow-kill方式启动的Artemis实例命令)
        DataAbstract (org.apache.activemq.artemis.cli.commands.tools)
            LockAbstract (org.apache.activemq.artemis.cli.commands.tools)
                EncodeJournal (为一组日志文件的编码设置为内部数据格式命令)
                Run (运行Artemis实例命令)
                OptionalLocking (org.apache.activemq.artemis.cli.commands.tools)
                    PerfJournal (计算现在使用磁盘的journal-buffer-timeout设置的建议值命令)
                    DBOption (org.apache.activemq.artemis.cli.commands.tools)
                        PrintData (打印数据记录信息命令(注意:在生产服务器运行时不要使用))
                        XmlDataExporter (以XML格式导出所有消息数据命令)
                CompactJournal (压缩非运行服务器的日志命令)
                DecodeJournal (将日志的内部格式解码为新的日志文件集命令)
HelpUser (user组的帮助命令)
HelpAction (全局帮助
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值