消息通信插件
LCGYL Framework 提供了灵活的消息通信解决方案。
插件列表
| 插件 | 说明 | 适用场景 |
|---|---|---|
| lcgyl-mq-plugin | 进程内消息总线 | 单机应用 |
| lcgyl-kafka-plugin | Kafka 集成 | 高吞吐、日志收集 |
| lcgyl-rabbitmq-plugin | RabbitMQ 集成 | 可靠投递、复杂路由 |
选择指南
需要消息通信?
│
├── 单机应用 → mq-plugin(进程内)
│
└── 分布式 ─┬── 高吞吐量 → kafka-plugin
│
└── 可靠投递 → rabbitmq-plugin进程内消息
添加依赖
gradle
dependencies {
implementation 'com.lcgyl:lcgyl-mq-plugin:2.2.0'
}发布消息
java
@Component
public class OrderService {
@Inject
private MessageBus messageBus;
public Order createOrder(CreateOrderRequest request) {
Order order = orderRepository.save(request.toOrder());
// 发布事件
messageBus.publish(new OrderCreatedEvent(order));
return order;
}
}订阅消息
java
@Component
public class NotificationService {
@Subscribe("order.created")
public void onOrderCreated(OrderCreatedEvent event) {
// 发送通知
sendNotification(event.getOrder().getUserId(), "订单创建成功");
}
}Kafka 集成
添加依赖
gradle
dependencies {
implementation 'com.lcgyl:lcgyl-kafka-plugin:2.2.0'
}配置
yaml
lcgyl:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: my-group
auto-offset-reset: earliest
producer:
acks: all生产者
java
@Component
public class OrderProducer {
@Inject
private KafkaTemplate<String, Order> kafkaTemplate;
public void sendOrder(Order order) {
kafkaTemplate.send("orders", order.getId(), order);
}
}消费者
java
@Component
public class OrderConsumer {
@KafkaListener(topics = "orders", groupId = "order-processor")
public void consume(Order order) {
// 处理订单
processOrder(order);
}
}RabbitMQ 集成
添加依赖
gradle
dependencies {
implementation 'com.lcgyl:lcgyl-rabbitmq-plugin:2.2.0'
}配置
yaml
lcgyl:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /发送消息
java
@Component
public class OrderSender {
@Inject
private RabbitTemplate rabbitTemplate;
public void sendOrder(Order order) {
rabbitTemplate.convertAndSend("orders.exchange", "order.created", order);
}
}接收消息
java
@Component
public class OrderReceiver {
@RabbitListener(queues = "orders.queue")
public void receive(Order order) {
// 处理订单
processOrder(order);
}
}对比
| 功能 | mq-plugin | kafka | rabbitmq |
|---|---|---|---|
| 进程内 | ✅ | ❌ | ❌ |
| 分布式 | ❌ | ✅ | ✅ |
| 消息持久化 | ❌ | ✅ | ✅ |
| 高吞吐 | ✅ | ✅✅ | ✅ |
| 消息确认 | ❌ | ✅ | ✅ |
| 死信队列 | ❌ | ✅ | ✅ |
| 延迟消息 | ❌ | ❌ | ✅ |