企业应用中,对于面向服务的基础设施体现为ESB, 面向服务的消息机制有一种是One-way, 一种是Request/response, 一种是Pub/sub 这三种模式其实可以同分为两类,同步和异步...MSMQ从NT开发就有了,最新版本是4.0,MSMQ 在各个操作系统的对应版本: MSMQ版本 操作系统 1.0 Windows NT4, Windows 95/98/Me 2.0 Windows 2000...MSMQ4.0在事务支持方面的得到了改进,它允许在不同的机器之间使用事务来接受消息....en-us).aspx MSDN Code 上有一个SOA'izing MSMQ with WCF (and Why It's Worth It),是学习WCF和MSMQ的一个我所看到的最好的教程。...Yoel's Microsoft Message Queue (MSMQ) space http://msmq.spaces.live.com/
微软消息队列-MicroSoft Message Queue(MSMQ) 使用感受:简单。...一、windows安装MSMQ服务 控制面板->控制面板->所有控制面板项->程序和功能->选中安装 ? 然后可在计算机管理-->服务和应用程序->消息队列查看队列信息 ?...二、C#中使用MSMQ 使用MessageQueue类操作MSMQ,其在System.Messaging命名空间下,需要添加引用 定义的接口 public interface IMessageSender
在一些并发量比较高的"中小型"应用中,如果短期内有大量的数据插入,利用msmq中转是一个不错的选择(petshop就是这么干的),想知道msmq一秒钟内到底能发多少条记录吗?
Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: 阿新 完成日期: 2005-8-18 1.0...文档说明: 1.1文档目的 介绍了MSMQ的基本编程(如存储和接收消息)和基本的管理功能(如创建和删除队列)。...虽然使用.Net API来是非常方便和简单的,但是在实际的MSMQ项目中,需要了解消息队列作为架构的概念。通过使用MSMQ,系统会更加松散耦合,因此更加自治(autonomous)。...说明:我们这里用到专用队列; 3、同步和异步通信(Synchronous VS....安全性 — MessageQueue 组件基于的消息队列技术使用 Windows 安全来保护访问控制,提供审核,并对组件发送和接收的消息进行加密和验证 2类库功能说明 完成将报文以string,stream
消息队列(MSMQ)技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之间进行通信。 应用程序将消息发送到队列,并从队列中读取消息。...目前比较常用的消息队列有ActiveMQ、RabbitMQ、MSMQ ,Kafka、RocketMQ、Redis等。 消息队列和队列有什么区别呢?...我理解的MSMQ MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存储的是一条一条的记录,而MSMQ存储的是一个一个的消息(messsge)。...当然MSMQ的用途远不止这些,例如,充当数据缓存,实现异步操作等等,这里就不在一一举例了。 系统的消息队列,为我们提供了3种队列传出队列,专用队列和系统队列,而用户能自由创建的只有专用队列。...我们知道队列分事务性队列和非事务性队列,默认创建的是非事务性队列。当我们勾选事务性复选框,我们就会创建事务性队列,那么什么是事务性队列呢?
然后就可以写我们的代码了,我们的服务需要实时监视MSMQ的队列中有没有记录,如果有,就向数据库中插入 核心代码如下 /// /// 接收来自MSMQ的消息,并保存到数据库 /// <...void PrintAll() { Console.WriteLine("{0} {1} {2}", ID, Info, OccerTime); } } 为了使服务实时对MSMQ...本例经过自己实验,已经成功,当若干客户端同时进行某种操作时,可以同时写入数据库中,这就是我要说的,进行window服务和MSMQ技术实现高并发的解决方案
实现MSMQ消息加密的安全实践 消息加密的工作原理 消息应用程序发送方对消息进行加密后发送到目标计算机的消息队列中,然后由目标计算机上的应用程序接收消息队列中的消息进行解密。
// Console.WriteLine("公共队列{0}的路径为{1}",mq.Label, mq.Path); // mq.Send("MSMQ... Console.WriteLine("私有队列{0}的路径为{1}", mq.Label, mq.Path); mq.Send("MSMQ
在默认情况下msmq 3.0(windows xp ,windows 2003)最大单个消息(Message size)大小4M;(包括正文和全部指定属性的消息的大小不能超过 4 MB。...这样可以很好的利用网络带宽,和提高系统的处理性能。 但对于一些特别少数的应用仍然存在大报文的需求,而msmq作为一个消息中间件有很多优势。所以我们还是要想办法使用他,或是扩展他的功能。 ...下面就我在网上和通过一些网友的帮助整理了一些突破这个4M限制方法。 ...1.通过修改注册表(regedit)HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\ 加添一个MaxMessageSize DWORD值大小默认4M(0x00400000...4.使用BizTalk提供的一个LargeMessage api可以以编成方式实现对大报文的处理,处理方式和方法3类似。并且可以实现和BizTalk兼容。
.可以简单地把MSMQ的消息,日志等文件存储到不同的磁盘来降低MSMQ对一个磁盘IO依赖从而达到更高的读写效能.由于MSMQ一般都是存储流水数据,如果消息结构比较少和消费积累量不高的情况把MSMQ存储放到内存则是一个非常不错的选择...,这样能够大大提高MSMQ的读写效能(缺点:断电部分数据存在丢失).下面针对MSMQ内存存储的一些实现和简单测试....制定内存盘备份 完全把数据存放到内存中风险还是比较大的,可以根据实里需要把内存盘的数据写入一个镜象文件中.Dataram RAMDisk这个工具想得比较周到的它提供了内存盘数据来源的镜象文件和定期保存镜象的设置...更改MSMQ存储路径 当内存盘构建完成后你只需要把MSMQ的文件存储路径指向内存盘即可. ? 性能测试对比 MSMQ的存储指向内存盘后,其实整体的读写效率是不是会提高呢?...总结 从测试结构来看,内存盘的收益还是很明显的.接收消息和发送消息都有着1/3的提高.由于消息的并不大,在队列中停留的时间不长,在跑了3亿多的消息调度后内存占用的空间只用了30MB,这么小空间内存盘的镜象短时间进一个保存应该不会存在多大问题
我们今天就来谈谈在WCF中如何使用MSMQ。 MSMQ不仅仅是作为支持客户端连接工具而存在,合理的使用MSMQ可以在很大程度上提升系统的Performance和Scalability。...但是我们仍然说MSMQ为我们提供了可靠的传输(Reliable Messaging),这主要是因为MSMQ为我们提供一些列Reliable Messaging的机制: 超时机制(Timeout):可以设置发送和接收的时间...二、 MSMQ在WCF的运用 在WCF中,MSMQ提供的数据传输功能被封装在一个Binding中,提供WCF Endpoint之间、以及Endpoint和现有的基于MSMQ的Application进行通信的实现...这是Client和Service通信的图示: 三、MSMQ和Transaction MSMQ提供对Transaction的支持。...对于WCF中MSMQ,由于Client和Service的相对独立(可能Client发送Message到Service处理Message会相隔很长一段时间),所以Client和Service的操作只能纳入不同的
System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using MSMQ... mq=mqinfor.Open(MSMQ.MQACCESS.MQ_SEND_ACCESS.GetHashCode(),MSMQ.MQSHARE.MQ_DENY_NONE.GetHashCode());... MSMQ.MSMQMessageClass msg=new MSMQMessageClass(); msg.Label="activeX Test";... mq=mqinfor.Open(MSMQ.MQACCESS.MQ_RECEIVE_ACCESS.GetHashCode(),MSMQ.MQSHARE.MQ_DENY_NONE.GetHashCode(...)); MSMQ.MSMQTransactionClass MQ_NO_TRANSACTION=new MSMQTransactionClass
Responsible Service 我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。...下图简单表述了基于MSMQ的WCF Service中Client和Service的交互。 ? 但是在有些场景 中,这是无法容忍的。再拿我在上一篇文章的Order Delivery的例子来说。...但是我们说过MSMQ天生就是异步的,我们只有采取一种间接的方式实现“曲线救国”。...,而对于我们的例子来说,我们仅仅是定义一个递交Order的Operation,从业务逻辑来看,OrderResponseContext和抽象的业务逻辑毫无关系。...基于WCF的编程模式很容易地帮助我们实现对Soap Header的插入和获取: 我们可以通过下面的方式获得当前Operation Context的Incoming Message Headers和Outgoing
要使用 MSMQ 进行分布式事务处理,首先需要创建一个 MessageQueueTransaction 的对象,并使用 Begin 调用以启动 MSMQ 的内部事务处理。
MSMQ 消息发送大于 4 导致 System.Messaging.MessageQueueException Mb。...这些内存映射文件存储队列所在计算机上 MSMQ\Storage 文件夹中。 解决方案 为了解决这个限制您应该 brake 信息到小数据块 ; 并 多部分邮件 中发送。...如 MSMQ 协议不支持多部分邮件, 您需要建立自己算法来发送者和接收者之间交换它们。 许多技术能应用于解决此问题。...2) 组是 MSMQ 消息包含一个多部分消息需要他人标识。... /// <summary> /// This example shows how to send and receive Files larger than 4 Mb. using MSMQ
1.先声明: msmq3.0仅在winxp和win2003以上系统支持,如果windows vista系统,据说已经开始支持msmq4.0了 2.为什么要使用http协议发送消息 访问internet...远程发送消息时,msmq2.0以上就已经开始支持tcp方式了,但是如果外网的服务器与发送端之间有防火墙或其它网络设备隔离,或者服务器上的tcp所需要的端口未开放,tcp方式将无法发送,而http协议使用的是默认的...80端口,一般服务器都会开放这一端口,另外只有http协议可以穿透防火墙 3.msmq3.0的安装问题 在windows xp上安装消息队列时,默认情况下msmq已经安装了http协议支持,而windows2003...上,默认安装的消息队列是没有http支持的,需要在"添加/删除 windows组件"-->"应用程序服务器"-->"消息队列"-->"详细信息"中把"MSMQ http支持"勾中 另外要说明的是msmq3.0...在安装过程中,需要在iis的默认站点(即标识为W3WVC1,msmq在安装中定死了这一标识)中创建msmq的虚拟目录,如果你不幸把iis的默认站点删除了,就无法正确安装msmq3.0的http支持(既使你再新建一个默认站点也没用
今天测试了一下,message queue的private队列,在internet上可以发送,只要知道服务端的IP地址即可(当然服务端的队列权限要给足) 注意:...
(MSMQ) 中发现了一个关键的远程代码执行漏洞,被分配编号 CVE-2024–30080。...攻击者可以通过 HTTP 向 MSMQ 服务器快速连续发送一系列特制的 MSMQ 数据包来利用此漏洞,从而导致远程代码执行。此漏洞不需要任何用户交互或提升的权限。...要利用此漏洞,攻击者需要通过 HTTP 向 MSMQ 服务器快速连续发送一系列特制的 MSMQ 数据包。这可能导致服务器端远程代码执行。修复官方修复: 微软已发布补丁来修复此漏洞。...建议用户和管理员立即更新其系统。建议应用更新: 确保所有运行 MSMQ 服务的系统都更新到包含 CVE-2024–30080 修复程序的最新版本。...通过保持警惕并及时应用必要的更新,用户可以保护其系统免受 CVE-2024–30080 带来的风险,并确保其数据和操作的安全性与完整性。
简单的说就是数据存储到一个空间里(可以是内存,也可以是物理文件),先存储的数据对象,先被取出来,这与堆栈正好相反,消息队列也是这样,将可能出现高并发的数据进行队列存储,并按着入队的顺序依次处理,实现消息队列的工具有很多,如微软的MSMQ...redis服务有一个console的程序,可以支持在windows和linux下运行。...: MessageQuene.CurrentChatModels.Chat; ViewData["MSMQ"] = redisClient.ListRange("MessageQuene")
目前我们首先要解决的问题是快速定位问题发生的系统和异常信息,第一时间收集到系统必要异常信息和审计信息,第一时间反馈给运行维护和客服人员,第一时间让相关人员做出相应的处理。...方案介绍 本方案使用微软企业库日志应用程序块(以下称Logging application block),实现对每个系统的日志采集,通过MSMQ的发式发送到一个功能平台,公共平台利用企业库提供的MSMQ...默认 传输日志扩展属性定义 NO 扩展属性 值 描述 1 客户部署 功能 采集系统异常和审计信息通过msmq发送到平台。...对于企业端传输的配置 Category Source(分类)名称统一使用CTS,同时使用Msmq TraceListener将日志发送到平台,和使用EventLog TraceListener写入本地的系统事件日志中...新建一个msmq trace listener ? 配置msmq队列属性 ?