# est-spi-messaging **Repository Path**: est-spi/messaging ## Basic Information - **Project Name**: est-spi-messaging - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EST SPI Messaging [English Version](README.en.md) ## EST SPI 消息模块 est-spi-messaging 是 EST SPI 框架的消息模块,提供消息生产和消费功能。 ### 核心功能 #### Message - 消息接口 定义消息的接口,包含ID、主题、payload、headers 和时间戳。 #### DefaultMessage - 默认消息实现 消息的默认实现是? #### MessageProducer - 消息生产者接口 定义消息生产者的接口。 #### MessageConsumer - 消息消费者接口 定义消息消费者的接口,包括MessageListener。 #### MessageBroker - 消息代理接口 组合了生产者和消费者功能的消息代理接口。 #### InMemoryMessageBroker - 内存消息代理实现 基于内存的简单消息代理实现。 ### 快速开始 #### 创建消息代理 ```java import ltd.idcu.est.spi.messaging.InMemoryMessageBroker; import ltd.idcu.est.spi.messaging.MessageBroker; import ltd.idcu.est.spi.messaging.MessagingException; public class Example { public static void main(String[] args) throws MessagingException { MessageBroker broker = new InMemoryMessageBroker(); broker.start(); // 使用 broker... broker.stop(); } } ``` #### 订阅消息 ```java import ltd.idcu.est.spi.messaging.Message; import ltd.idcu.est.spi.messaging.MessageBroker; import ltd.idcu.est.spi.messaging.MessageConsumer; public class Example { public static void main(String[] args) throws Exception { MessageBroker broker = ...; broker.subscribe("my-topic", new MessageConsumer.MessageListener() { @Override public void onMessage(Message message) { System.out.println("Received message: " + message.getPayload()); } }); } } ``` #### 发送消息 ```java import ltd.idcu.est.spi.messaging.MessageBroker; public class Example { public static void main(String[] args) throws Exception { MessageBroker broker = ...; broker.send("my-topic", "Hello, World!"); Map data = new HashMap<>(); data.put("key", "value"); broker.send("my-topic", data); } } ``` #### 使用自定义消息 ```java import ltd.idcu.est.spi.messaging.DefaultMessage; import ltd.idcu.est.spi.messaging.Message; import ltd.idcu.est.spi.messaging.MessageBroker; public class Example { public static void main(String[] args) throws Exception { MessageBroker broker = ...; Message message = new DefaultMessage("custom-topic", "Custom Payload"); message = ((DefaultMessage) message).withHeader("priority", "high"); broker.send(message); } } ``` #### 取消订阅 ```java import ltd.idcu.est.spi.messaging.MessageBroker; import ltd.idcu.est.spi.messaging.MessageConsumer; public class Example { public static void main(String[] args) throws Exception { MessageBroker broker = ...; MessageConsumer.MessageListener listener = message -> { System.out.println("Received: " + message.getPayload()); }; broker.subscribe("topic", listener); // 一段时间后... broker.unsubscribe("topic", listener); } } ``` ### Maven 依赖 ```xml ltd.idcu.est.spi est-spi-messaging 1.0.0 ``` ### 许可证 MIT License