基于RabbitMQ的消息分发应用框架,基于RabbitMQ官方驱动(http://www.rabbitmq.com/dotnet.html)重度优化设计的应用框架。项目2015年已经应用到生产环境。基本功能介绍: 1、生产消息层面 1.实现集群多节点机制(非数据复制,而是异常时自动切换节点),目前实现的机制类似mongo的副本级集群模式。 2.节点异常切换时注意防止消息丢失,主要在管道关闭/连接关闭/推送瞬间异常时做了处理。 3.每个生产者通过一个长连接管道的方式进行通信,解决连接数超过极限导致rabbitmq异常错误,同时减少打开释放连接的资源消耗,使框架推送性能提升2-3个数量级. 4.修复实现集群时节点切换过程可能出现消息丢失的bug 5.生产者增加对象消息重载,通过二进制序列化反序列化解决类型转的问题 2、消费消息层面 1.通过订阅模式实现消费,同一节点下,消费者一个管道下进行,避免反复打开管道,大大提升消费性能。 2.框架层面实现了消费者插件化,便于部署消费者时可以基于实际情况增加或减少消费者 3.定义了两个消费者服务(影院端、总部端);消费者服务基于插件的方式实现消费者的热插拔(消费服务可以在运行状态,动态添加消费者插件,无须停止 重启服务) 4.每个消费者可以多线程订阅 5.框架层面增加性能报警,当消费者执行时间大于10秒时,增加警告日志 以上升级功能,已经全部经过测试。 补充:已经将log4net集成到框架中,实现根据业务将消费者的日志文件存储