feat(rabbitmq): replace Java agent with Go implementation

This commit is contained in:
t8y2 committed 2026-07-31 12:26:32 +08:00
1 parent cc717d116c
commit ec477dea10
29 files changed
+4151 -4055

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@ mq/
├── service.rs - 服务层函数
└── adapters/
├── pulsar.rs - Pulsar 实现
├── rabbitmq.rs - RabbitMQ 实现 (Java agent)
├── rabbitmq.rs - RabbitMQ 实现 (Go native agent)
└── pulsar_version.rs - 版本探测
```
+5 -5
View File
@@ -1,9 +1,9 @@
//! RabbitMQ admin adapter. Communicates with a Java agent process
//! (`RabbitMqAgent.java`) via JSON-RPC over stdin/stdout. The Java agent uses
//! the `amqp-client` library for admin and message operations.
//! RabbitMQ admin adapter. Communicates with the native Go agent via JSON-RPC
//! over stdin/stdout. The agent uses `amqp091-go` for AMQP operations and the
//! RabbitMQ management HTTP API for administrative operations.
//!
//! This adapter follows the same pattern as the Kafka agent:
//! 1. Spawn a Java agent process via `AgentDriverClient`
//! 1. Spawn the native agent process via `AgentDriverClient`
//! 2. Perform JSON-RPC handshake + connect
//! 3. Delegate all `MessageQueueAdmin` trait methods to JSON-RPC calls
@@ -59,7 +59,7 @@ pub struct RabbitMqAdmin {
}
impl RabbitMqAdmin {
/// Spawn the RabbitMQ Java agent, perform handshake, and connect.
/// Spawn the RabbitMQ native agent, perform handshake, and connect.
pub async fn new(cfg: MqAdminConfig, launch: AgentLaunchSpec) -> Result<Self, String> {
let mut client = AgentDriverClient::spawn(launch).await?;