wcf-使用MSMQ消息队列的WCF的效率的问题。

问题描述

使用MSMQ消息队列的WCF的效率的问题。

请教个问题,WCF在使用MSMQ的时候,每次WCF程序处理MSMQ中的数据量,每秒只有几百条。
以下是测试数据

处理消息数:
180000

开始时间:
[2013-11-01 15:35:27]
Start To Save Log To DB.

结束时间:
[2013-11-01 15:51:12]
Finish To Save Log To DB.

耗时:
00:15:45

基本上算下来也就每秒190多条,以前好的时候可以达到200多条,其中程序花费了些时间,如果把程序处理的代码注释掉的话,最好也只能到280条左右。

MSMQ在处理消息的效率跟网络传输的速度、读写硬盘的速度有关,
根据自己测试发现,客户端的消息传送到服务端的效率相对来说很快,时间90%以上都耗费在MSMQ向WCF输出数据上了。

想问问,有木有什么办法能够提升MSMQ向WCF服务的传出效率啊!~~急啊~!~~

相关工具:
vs2010sp1
sqlserver2008r2
iis7

附上测试机的部分配置:

主机名: ******-PC OS 名称: Microsoft Windows 7 旗舰版 OS
版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商:

Microsoft Corporation OS 配置: 独立工作站 OS 构件类型:

Multiprocessor Free 注册的所有人: ******Server 注册的组织: 产品 ID:

00426-OEM-******-00400 初始安装日期: 2005/1/1, 2:46:59 系统启动时间:

2013/10/31, 14:03:53 系统制造商: Dell Inc. 系统型号: Vostro 260s
系统类型: x64-based PC 处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~3101 Mhz BIOS 版本: Dell Inc. A06, 2012/5/18
Windows 目录: C:Windows 系统目录: C:Windowssystem32 启动设备:

DeviceHarddiskVolume1 系统区域设置: zh-cn;中文(中国) 输入法区域设置:

zh-cn;中文(中国) 时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐 物理内存总量:

6,127 MB 可用的物理内存: 1,564 MB 虚拟内存: 最大值: 12,251 MB 虚拟内存: 可用: 7,732 MB
虚拟内存: 使用中: 4,519 MB 页面文件位置: C:pagefile.sys 域:

WORKGROUP 登录服务器: ******-PC 修补程序: 安装了 3 个修补程序。
[01]: KB2685811
[02]: KB958488
[03]: KB976902 网卡: 安装了 1 个 NIC。
[01]: Realtek PCIe GBE Family Controller
连接名: 本地连接
启用 DHCP: 否
IP 地址
[01]: 192.168.8.88

时间: 2024-10-02 22:24:40

wcf-使用MSMQ消息队列的WCF的效率的问题。的相关文章

wcf-多个WCF调用同一个MSMQ消息队列

问题描述 多个WCF调用同一个MSMQ消息队列 多个WCF调用同一个MSMQ消息队列可以实现吗?配置文件应该怎么写?求大神多多帮忙啊~我是个新手,希望大神们能尽快给我答案,最好详细些,谢谢了~ 解决方案 http://www.cnblogs.com/quietwalk/archive/2011/08/10/2133241.html 多个和一个没区别. 解决方案二: 天生消息队列就是跨进程的.

WCF分布式开发必备知识(1):MSMQ消息队列

学习WCF是不是就不需要学习.Net Remoting.ASMX.WSE和MSMQ了? 这个问题一直是很多开发者关注的问题.按照微软的说法,WCF是微软分布式应用程序开发的集大成者,学习WCF编程,就不需要了解其他的技术.这个说法有一定的道理.WCF的出现确实解决了很多问题,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting.ASMX.WSE和MSMQ.以通信(Communiation)范围而论,它可以跨进程.跨机器.跨子网.企业网乃至于 Internet:可以以

关于MSMQ消息队列的问题,如果向客户端返回执行的结果

问题描述 通过程序创建了专用的消息队列.客户端向服务器发送消息队列,如将要执行的存储过程的方法发送到服务器端的队列中,我如何才能知道服务器端收到这个消息后把存储过程运行的结果再返回到我处在的客户端呢?假定客户端有一万台PC,每时每刻的向服务器发出消息,服务器能知道是从哪个客户端发过来的吗?并把执行结果,比如存储过程执行的结果返回给相应的客户端呢?

wcf-WCF和消息队列让我头疼的问题

问题描述 WCF和消息队列让我头疼的问题 如果项目中,或者说服务器上已经将一个MSMQ消息队列的WCF服务部署好了,现在调用这个服务的有若干个WCF,老板让再增加一个WCF,最好是用配置文件去完成,但是不让重启服务器,可以做到吗?希望各位大能帮帮忙,本人就一刚毕业学生,感到压力山大... 解决方案 可以,你google wcf self host 这样你的程序不必注册为windows服务.和一般程序一样,双击运行. 解决方案二: 在WCF中使用消息队列WCF学习笔记(九):WCF绑定使用netM

WCF分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ

之前曾经写过一个关于MSMQ消息队列的文章:WCF分布式开发必备知识 (1):MSMQ消息队列 ,当时的目的也是用它来作为学习WCF 消息队列MSMQ编程的 基础文章.在那篇文章里,我们详细介绍了MSMQ消息队列的基本概念.安装.部 署.开发.调试等相关问题.今天我们来学习WCF分布式开发步步为赢(13):WCF 服务离线操作与消息队列MSMQ.在WCF框架下使用MSMQ消息队列服务编程. 这 里我会给出一个使用WCF MSMQ实现离线请求的DEMO示例程序. 全文结构是:[1]MSMQ基本概念

WCF分布式开发步步为赢(1):WCF分布式框架基础概念

众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则.SOA如此炙手可热,各大厂商都推出了自己的中间件产品,比如Oracle Fusion和 SAP NetWeaver,IBM.BEA等企业也推出了自己基于SOA的解决方案.基于J2EE平台的SOA架构设计中的一个重要概念就是EJB企业服务总线,作用是实现各个系统的数据交互.而.NET平台上,WCF就是微软为各个系统的数据交互提供通讯

使用NBear.MQ分布式服务消息队列模块开发分布式系统

NBear.MQ是NBearFramework中新增的分布式消息队列模块,作为NBear Framework的新成员,NBear.MQ秉承NBear一贯的易于使用和零配置需要的特点,大大改善开发基于消息队列的分布式系统的效率.本文通过介绍一个基于NBear.MQ的Sample - TestServiceMQ,演示基于NBear.MQ开发分布式系统的基本方法. 解析 1.TestRemotingServer 首先是我们的Server,对于Server,如果您使用NBear.MQ内置的MemoryS

消息队列(一)——消息的简单发送与接收

    背景           开发者经常遇到需要异步执行操作的情况(即过程不等到操作完成就开始).消息队列提供一个中心位置或池,您可以在其中放置或从中提取数据,从而满足了这一要求.一个应用程序能够把消息存放在队列中,然后继续自己的业务,另一个应用程序在运行时再提取这些数据.   简单理解                             感觉这里的消息队列还是一个典型的"buffer"思想:即就像喝水一样,如果有一杯水,我可能就直接喝掉了:但是如果有一壶水,我可能要先把水倒进

C#中使用消息队列服务

C#中使用Windows消息队列服务 http://www.cnblogs.com/xinhaijulan/archive/2010/08/22/1805768.html http://h2appy.blog.51cto.com/609721/184323 http://www.cnblogs.com/isdavid/archive/2012/08/16/2642867.html http://www.cnblogs.com/beniao/archive/2008/06/26/1229934.h