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