构建负载和故障处理的MSMQ代理服务构想

构建负载和故障处理的MSMQ代理服务构想

在大并发数据应用处理过程中,往主需要消息队列这样的应用把信息分发到不同服务器上进行数据处理,目的是把流程数据拆分成N个环节分布到不同的服务器上运行,从而提高整体数据处理能力.

前段时间在做MSMQ的负载和故意处理,在测试的过程中发现让我非常困扰的问题,就是通过.net 操作远程MQ的时候当对方挡机了.NET并不会报错,而是会写入本地转出队列这样就很难实时有效地把消息转移到别的MQ服务器.另一方面.NET操作远程MQ本机也必须装上MQ服务,还有一个就是.NET操作远程MQ的损耗也非常高.

为了解决以上问题的,所以打算实现一个MSMQ代理组件,组件分为两大部分别是服务端和CLIENT,服务端的功能主要是开启监听对请求进行本地MQ操作.CLIENT则相对复杂一些它提供的功能有负载各故障迁移等功能.

MSMQNode结构

应用服务和消息处理服务都通过MSMQNode进行消息写入和读取操作.

负载处理

为了适应以后并发的需要,在不调整代码的基础可以轻易配置负载处理能力.

MSMQNode的实现除了具备多机负载处理能力外,组件Client端会简单轮循去操作不同的服务.

故障处理

多节点连接池

MSMQNode在设计上主要是通过软件来实现负载和迁移,所以在部署上并不需要在中间加架设LVS这样的负载服务.为了实现这一功能组件针对性设计一个多节点连接池.

 

当某个节点出现连接异常的时候,连接池可以把当前损坏的节点从池中排除,除了在排除外连接池也会定期对损坏的节点进行TCP连接创建,一旦检测到连接恢复,那这个节点将重新回归到连接池中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值