本章代碼基於第十章 (Redis 分散式緩存)。GitHub:https://github.com/zhaojigang/ssmm0
需求:註冊 admin 後異步寫入日誌到資料庫。分析:實際生產不直接寫資料庫 (日誌量大、頻繁),通常由 Nginx/後端產生日誌檔,定時任務配合 Shell/Python 正則過濾後入庫。此處示範異步寫入。
Server1 執行註冊 → 寫入 DB → 發送日誌訊息到 ActiveMQ (異步,不等待消費) → 返回。
Server2 循環消費佇列訊息 → 寫入資料庫。

ActiveMQP2PUtil (rpc 模組):單例連接工廠、sendMessage(Serializable)、receiveMessage(MessageHandler) 死循環消費。
MessageHandler 介面:handle(Message)。
LogMessageHandler (data 模組):實作 Handler,注入 LogDao 將日誌寫入 DB。
AdminService.register:註冊成功後建立 Log 物件,呼叫 ActiveMQP2PUtil.sendMessage(log) 異步發送。
MessageReceiver (rpcWeb Controller):/mq/receive 端點呼叫 receiveMessage(handler) 開始消費。
rpc_config.properties:activemq.queueURL=tcp://127.0.0.1:61616, activemq.queueName=adminQueue。
Spring 整合:spring-data.xml、spring.xml 掃描 data/rpc 模組 Bean。
activemq.bat,訪問 https://127.0.0.1:8161/admin/queues.jsp 監控佇列。https://localhost:8080/admin/register?username=canglang25&password=1457890。https://localhost:8081/mq/receive (瀏覽器轉圈等待消費,關閉 Jetty 停止)。Jetty 不同埠可同時啟動,同埠後啟動會覆蓋。