Artemis 的 ActiveMQ Next 路线图
本页面的目标是确定 Artemis 必须解决的未决问题,以便实现与 Classic 的功能一致性。Classic 和 Artemis 之间实现功能一致性的总体目标是 Artemis 最终成为 ActiveMQ 的下一个主要版本。创建此页面是为了让我们能够作为一个团队共同努力实现这一目标。此页面不列出 Artemis 比 Classic 现有的功能。
功能/场景
本部分应用于比较 ActiveMQ Classic 中哪些功能已在 Artemis 中实现。可以列出功能项,并提供指向 JIRA 票证的链接,以进行更长时间的讨论和确定具体功能细节。这将帮助我们更清楚地跟踪 Artemis 需要的所有内容。此功能列表取自 Classic 的功能页面。
请记住,并非每个功能都必须有✅。即使本页面上的某些功能仍然带有❌,只要这些功能被认为是低优先级,Artemis 仍然可以准备好成为 ActiveMQ Next。Artemis 不是要完全重新实现 ActiveMQ Classic。只有在有意义的情况下,才应重新实现功能。
协议支持
功能 | Artemis 支持 | 版本 |
---|---|---|
OpenWire | ✅ | |
Stomp | ✅ | 1.0, 1.1, 1.2 |
AMQP | ✅ | 1.0 |
MQTT | ✅ | 3.1 |
REST | ✅ |
通用
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
代理 Camel 组件 | ✅ | 示例 | |
发现 | ✅ | UDP 多播 & JGroups | |
企业集成模式 | ✅ | 参见“代理 Camel 组件” | |
水平扩展 | ✅ | 通过集群或联合支持 | |
JMSXUserID | ✅ | 文档 | |
JMX | ✅ | 文档 | |
如果忘记启动连接,则记录警告 | ❌ | ||
MDC 记录 | ❌ | ||
扩展队列的深度 | ✅ | 文档 | |
URI 协议 | ✅ | vm、tcp、udp、jgroups | |
代理连接器 | ❌ | ||
Unix shell 脚本 | ✅ |
集群
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
主从 | ✅ | 使用 JDBC、共享文件系统和复制;文档 | |
代理网络 | ✅ | ARTEMIS-2265 | 通过集群或联合实现等效功能 |
复制的消息存储 | ✅ | 通过复制HA 配置实现等效功能 |
消费者功能
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
异步消费者调度 | ✅ | 通过directDeliver URL 参数实现等效功能 |
|
消费者优先级 | ✅ | ARTEMIS-196 | 文档 |
独占消费者 | ✅ | ARTEMIS-853 | 文档 |
管理持久订阅者 | ✅ | 通过expiry-delay 地址设置实现等效功能 |
|
消息组 | ✅ | 文档 | |
重新传递策略 | ✅ | 文档 | |
追溯消费者 | ✅ | ARTEMIS-2504 | 文档将在 2.11 中提供 |
选择器 | ✅ | 文档 | |
处理慢速消费者 | ✅ | 文档 | |
订阅恢复策略 | ✅ | 参见追溯地址 |
目标功能
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
复合目标 | ✅ | 支持 OpenWire 客户端;另请参见分流 | |
配置启动目标 | ✅ | ||
删除不活动的目的地 | ✅ | ||
目标选项 | ✅ | ||
镜像队列 | ❌ | 通过非独占分流实现粗略的等效功能 | |
每个目标的策略 | ✅ | 通过address-settings 配置 |
|
虚拟目标 | ✅ | 文档,以确保与 OpenWire 客户端向后兼容 | |
通配符 | ✅ | 文档 |
拦截器
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
目标插件 | ✅ | 文档 | |
日志记录拦截器 | ✅ | 文档 | |
StatisticsPlugin | ✅ | 通过管理消息实现等效功能 | |
TimeStampPlugin | ❌ |
消息调度功能
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
异步发送 | ✅ | 支持 OpenWire 和核心(通过blockOnDurableSend 和blockOnNonDurableSend URL 参数) |
|
可插拔调度策略 | ❌ | 已实现 delay-before-dispatch 和 consumers-before-dispatch | |
消息游标 | ✅ | 通过分页实现等效功能 | |
优化确认 | ✅ | 支持 OpenWire 和核心,以及通过ackBatchSize URL 参数 |
|
生产者流量控制 | ✅ | 文档 | |
总排序 | ❌ |
消息功能
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
ActiveMQ Classic 消息属性 | ✅ | ||
通知消息 | ✅ | 通过管理通知实现等效支持 | |
Blob 消息 | ✅ | 支持任意大型消息 | |
延迟和计划消息传递 | ✅ | 文档 | |
消息转换 | ✅ | 通过转换器和远程拦截器支持 | |
ObjectMessage | ✅ | 文档 | |
结构化消息属性和 MapMessages | ❌ |
持久性
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
AMQ 消息存储 | ✅ | 通过日志实现等效功能 | |
可配置的 IOException 处理 | ❌ | 所有 IO 错误都被视为严重错误 | |
JDBC 支持 | ✅ | ||
KahaDB | ✅ | 通过日志实现等效功能 | |
Kaha 持久性 | ✅ | 通过日志实现等效功能 | |
定期检查磁盘限制 | ✅ | ||
可插拔存储锁 | ❌ | ||
复制的 LevelDB 存储 | ✅ | 通过日志复制 HA 配置实现等效功能 | |
多 KahaDB | ❌ | ARTEMIS-839 |
安全
功能 | Artemis 支持 | JIRA | 说明 |
---|---|---|---|
审计日志记录 | ✅ | ARTEMIS-2273 | 文档 |
缓存的 LDAP 授权模块 | ✅ | ARTEMIS-168 | 文档 |
加密密码 | ✅ | 文档 | |
Shiro | ❌ | 通过 JAAS 实现等效功能 |
迁移
本部分应有助于回答最终用户的问题“如何从 Classic 迁移到 Artemis?”。这应该包括识别任何可以帮助简化此过程的工具,以及记录特定于迁移的信息和程序。