构建负载和故障处理的MSMQ代理服务构想
2013-05-07 16:20
204 查看
smark
Beetle可靠、高性能的.Net Socket Tcp通讯组件 支持flash amf3,protobuf,Silverlight,windows phone构建负载和故障处理的MSMQ代理服务构想
在大并发数据应用处理过程中,往主需要消息队列这样的应用把信息分发到不同服务器上进行数据处理,目的是把流程数据拆分成N个环节分布到不同的服务器上运行,从而提高整体数据处理能力.前段时间在做MSMQ的负载和故意处理,在测试的过程中发现让我非常困扰的问题,就是通过.net 操作远程MQ的时候当对方挡机了.NET并不会报错,而是会写入本地转出队列这样就很难实时有效地把消息转移到别的MQ服务器.另一方面.NET操作远程MQ本机也必须装上MQ服务,还有一个就是.NET操作远程MQ的损耗也非常高.
为了解决以上问题的,所以打算实现一个MSMQ代理组件,组件分为两大部分别是服务端和CLIENT,服务端的功能主要是开启监听对请求进行本地MQ操作.CLIENT则相对复杂一些它提供的功能有负载各故障迁移等功能.
MSMQNode结构
应用服务和消息处理服务都通过MSMQNode进行消息写入和读取操作.
负载处理
为了适应以后并发的需要,在不调整代码的基础可以轻易配置负载处理能力.MSMQNode的实现除了具备多机负载处理能力外,组件Client端会简单轮循去操作不同的服务.
故障处理
多节点连接池
MSMQNode在设计上主要是通过软件来实现负载和迁移,所以在部署上并不需要在中间加架设LVS这样的负载服务.为了实现这一功能组件针对性设计一个多节点连接池.当某个节点出现连接异常的时候,连接池可以把当前损坏的节点从池中排除,除了在排除外连接池也会定期对损坏的节点进行TCP连接创建,一旦检测到连接恢复,那这个节点将重新回归到连接池中.
相关文章推荐
- 构建负载和故障处理的MSMQ代理服务构想
- 构建负载和故障处理的MSMQ代理服务构想
- 前端lvs访问多台nginx代理服务时出现404错误的处理
- RHEL5下DNS服务的配置与故障处理
- WCF基于MSMQ的事件代理服务
- zabbix3.0 监控mysql服务免用户名密码登录的问题故障处理详细过程
- SQL Server代理服务无法启动的处理方法(转载)
- 线上故障处理——大量异常堆栈日志输出影响服务可用性
- Spring Boot + Spring Cloud 构建微服务系统(二):服务消费和负载(Ribbon)
- Nginx安装配置,简单构建LNMP环境配置反向代理,实现动静分离,以及实现负载均衡。
- keepalived + 反向代理 + http服务构建实用性Web站点
- [导入]构建WCF面向服务的应用程序系列课程(4):异常与错误处理.zip(13.70 MB)
- Spring Boot + Spring Cloud 构建微服务系统(三):服务消费和负载(Feign)
- 使用nginx实现对docker swarm服务的代理负载
- Windows文件共享服务(SMB)访问常见故障处理
- 高并发应用场景下的负载均衡与故障转移实践,.NET SOA 中间件负载均衡服务介绍与实例
- [导入]构建WCF面向服务的应用程序系列课程(3):契约版本处理.zip(15.79 MB)
- 【微服务No.2】polly微服务故障处理库
- 转:如何构建爬虫代理服务?
- 标准的Windows蓝屏故障的分析、处理流程和VMware服务错误记录