baichun-framework-rms

Crates.iobaichun-framework-rms
lib.rsbaichun-framework-rms
version0.1.0
created_at2025-06-16 11:26:40.722572+00
updated_at2025-06-16 11:26:40.722572+00
descriptionA high-performance, extensible message system module for Baichun-Framework, supporting multiple message brokers
homepage
repositoryhttps://github.com/fangbc5/Baichun-Framework
max_upload_size
id1714167
size135,715
(fangbc5)

documentation

https://docs.rs/baichun-framework-rms

README

RMS (Rust Message System) 模块

RMS 是 Baichun-Framework 框架的消息传递系统模块,提供了统一的消息传递接口和多种消息中间件的集成支持。

🌟 特性

  • 统一的消息传递接口
  • 支持多种消息中间件
  • 可靠的消息传递保证
  • 灵活的消息路由
  • 高性能异步处理
  • 完善的错误处理

🔧 主要组件

消息通道 (MessageChannel)

  • 双向消息通道支持
  • 消息路由功能
  • 通道生命周期管理

消息生产者 (MessageProducer)

  • 异步消息发送
  • 批量消息处理
  • 消息确认机制

消息消费者 (MessageConsumer)

  • 消息订阅
  • 消费组管理
  • 消息确认和重试

消息转换器 (MessageConverter)

  • 消息序列化/反序列化
  • 消息格式转换
  • 自定义转换器支持

📦 支持的消息中间件

  • Apache Kafka
  • RabbitMQ (计划中)
  • Redis Pub/Sub (计划中)
  • NATS (计划中)
  • Apache Pulsar (计划中)

🚀 快速开始

安装

Cargo.toml 中添加依赖:

[dependencies]
baichun-framework-rms = { version = "0.1.0" }

基本使用

  1. 创建消息通道
use baichun_framework_rms::bind;

let channel = bind!(factory, config);
  1. 发送消息
let producer = bind!(producer factory, config);
producer.send("topic", message).await?;
  1. 消费消息
let consumer = bind!(consumer factory, config);
consumer.subscribe("topic", |msg| {
    // 处理消息
    Ok(())
}).await?;

📚 配置说明

Kafka 配置示例

let config = KafkaConfig {
    brokers: vec!["localhost:9092"],
    group_id: "my-group",
    client_id: "my-client",
    // ... 其他配置
};

🔨 最佳实践

  1. 消息可靠性

    • 使用消息确认机制
    • 实现消息重试策略
    • 配置死信队列
  2. 性能优化

    • 使用批量处理
    • 配置合适的缓冲区大小
    • 调整并发消费者数量
  3. 监控和维护

    • 实现健康检查
    • 监控消息延迟
    • 跟踪消息流转

📈 性能指标

  • 吞吐量: 10k+ 消息/秒
  • 延迟: < 10ms (P99)
  • 可靠性: 99.99% 消息投递保证

🔍 故障排除

常见问题及解决方案:

  1. 连接超时

    • 检查网络连接
    • 验证中间件配置
    • 确认防火墙设置
  2. 消息堆积

    • 增加消费者数量
    • 优化消息处理逻辑
    • 检查资源使用情况

📝 开发计划

  • 添加更多中间件支持
  • 实现消息追踪功能
  • 优化性能和资源使用
  • 添加更多单元测试
  • 完善文档和示例

🤝 贡献

欢迎提交 Pull Request 或提出 Issue!

�� 许可证

MIT License

Commit count: 1

cargo fmt