第一次在博客园写文章,长期以来只是潜水中.本着不只索取,而要奉献的精神,随笔文章之.
现贡献一套长连接的框架.如下特性:
1:发布者可异步发送消息,消息如果发送失败,可重试发送,重试次数基于配置,消息发送的目的地是服务端.
2:如果消费者offline ,则能保证消息不会丢失,服务端和消息的生产者都会存储消息到本地磁盘.当消息者online后,则服务端主动会将消息发送给消费者.增强应用的可靠性(暂未实现,下一步实现,我们拭目以待,哈哈!).
3:发布订阅机制,客户端物理结构可以是单机形式也可以为分布形式.即消息的发布者和消息的订阅者是独立的,解耦的.支持多个客户端,1个客户端支持多个消费者及发布者.
4:程序内部统一采用接口,使用IOC容器管理对象生命周期.
5:服务端和客户端建立http长连接,保证客户端能及时收到消息处理,也比较节省宽带流量.
源码托管于CodePlex, 访问地址:https://zycomet.codeplex.com 有兴趣的朋友可以看看.
后续我会将框架图,类图描述下.
计划下一步实现:1:添加领域事件,2:支持消息队列等多形式消息存储,3:集成长连接的服务端,目前长连接的客户端和服务端是分两个解决方案实现,4:支持消费者offline时消息的可靠性存储及分发,增强服务端的可用性.