diff --git a/.gitignore b/.gitignore
index 02c4fd0c4..5cb34f58c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,6 @@ rebel.xml
.trae
nul
+
+# Artemis 嵌入式 broker 运行时持久化目录(journal/分页/绑定)
+data/
diff --git a/daxpay-platform/daxpay-platform-common/common-artemis/pom.xml b/daxpay-platform/daxpay-platform-common/common-artemis/pom.xml
index 4fca02419..a9f74525b 100644
--- a/daxpay-platform/daxpay-platform-common/common-artemis/pom.xml
+++ b/daxpay-platform/daxpay-platform-common/common-artemis/pom.xml
@@ -24,6 +24,13 @@
org.messaginghub
pooled-jms
+
+
+ org.apache.activemq
+ artemis-jms-server
+
cn.daxpay.open
diff --git a/daxpay-start/src/main/resources/application-dev.yml b/daxpay-start/src/main/resources/application-dev.yml
index 578613a90..cce2fdee1 100644
--- a/daxpay-start/src/main/resources/application-dev.yml
+++ b/daxpay-start/src/main/resources/application-dev.yml
@@ -34,21 +34,23 @@ spring:
lettuce:
pool:
max-wait: 1000ms
- # Artemis 消息队列配置(独立容器部署,JMS 协议)
- # 本地开发启动 broker:
+ # Artemis 消息队列(双模式:native=外置容器 / embedded=内嵌 JVM)
+ # 本地开发默认 embedded:无需启动独立 artemis 容器,broker 内嵌后端 JVM
+ # 如需连外部 broker(联调 docker artemis):设环境变量
+ # ARTEMIS_MODE=native + ARTEMIS_BROKER_URL/USER/PASSWORD
artemis:
- # 连接模式:native 表示连接外部独立 broker(非嵌入式)
- mode: native
- # Broker 连接地址
- broker-url: tcp://192.168.1.229:61616
- # broker 账号(与容器启动环境变量一致)
- user: admin
- password: admin
- # 连接池
+ mode: ${ARTEMIS_MODE:embedded}
+ broker-url: ${ARTEMIS_BROKER_URL:tcp://192.168.1.229:61616}
+ user: ${ARTEMIS_USER:admin}
+ password: ${ARTEMIS_PASSWORD:admin}
pool:
enabled: true
max-connections: 10
idle-timeout: 30s
+ embedded:
+ enabled: true
+ persistent: true
+ data-directory: ${ARTEMIS_DATA_DIR:./data/artemis}
jms:
# 会话缓存,提升发送性能
cache:
diff --git a/daxpay-start/src/main/resources/application-prod.yml b/daxpay-start/src/main/resources/application-prod.yml
index 5d0a9ef51..c8c4c7e97 100644
--- a/daxpay-start/src/main/resources/application-prod.yml
+++ b/daxpay-start/src/main/resources/application-prod.yml
@@ -40,16 +40,25 @@ spring:
lettuce:
pool:
max-wait: 1000ms
- # Artemis 消息队列(凭证环境变量注入)
+ # Artemis 消息队列(双模式:native=外置容器 / embedded=内嵌 JVM)
+ # 切换:环境变量 ARTEMIS_MODE=native|embedded(默认 native),无需改代码、不重打包
+ # - native:连接独立 artemis 容器(标准部署),需 ARTEMIS_USER/PASSWORD(installer 注入)
+ # - embedded:broker 内嵌后端 JVM(内存紧张场景省独立 JVM),无需凭证,journal 落 ARTEMIS_DATA_DIR
artemis:
- mode: native
+ mode: ${ARTEMIS_MODE:native}
broker-url: ${ARTEMIS_BROKER_URL:tcp://artemis:61616}
- user: ${ARTEMIS_USER:?missing ARTEMIS_USER}
- password: ${ARTEMIS_PASSWORD:?missing ARTEMIS_PASSWORD}
+ # 凭证空串兜底:embedded 模式不传也不报错;native 模式由 installer 注入真实值
+ user: ${ARTEMIS_USER:}
+ password: ${ARTEMIS_PASSWORD:}
pool:
enabled: true
max-connections: 20
idle-timeout: 30s
+ embedded:
+ enabled: true
+ # 持久化:支付超时 / 通知消息重启不丢(journal 落盘)
+ persistent: true
+ data-directory: ${ARTEMIS_DATA_DIR:./data/artemis}
jms:
cache:
enabled: true