消息中间件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

消息中间件DotNetMQ

原文出处:

/Articles/193611/DotNetMQ-A-Complete-Message-Queue-System-f or-NET#WhyNewMessBroker

介绍

在这篇文章中,我将介绍一个新的、独立的开源消息队列系统,该系统是创建在c#和.NET framework 3.5。DotNetMQ message broker,有几个功能,包括保证交付,路由、负载平衡、服务器图……等等。我将首先解释消息的概念和message brokers。然后我将检查DotNetMQ 是什么以及如何使用它。

什么是消息

消息传递是一种异步通信方式在相同或不同的机器上运行的应用程序的可靠传递。项目通过发送数据包的数据消息传达给对方。

消息可以是一个字符串,一个字节数组,一个对象……等等。通常情况下,发送者(生产商)计划创建一个消息并将消息队列和接收机(消费者)计划从队列中获取消息和处理它

发送方和接收方的程序不需要同时运行,因为消息是一个异步的过程。这就是所谓的松散耦合的沟通。

另一方面,Web服务方法调用(远程方法调用)是一种紧耦合和同步通信(可用应用程序必须运行和有效期间完整的通讯;如果脱机或Web服务方法调用期间发生错误,客户端应用程序变得异常)

图- 1:简单的两个应用程序消息传递

在上面的图中,两个应用程序通过消息队列以松散耦合的方式进行通信。如果接收方使用消息慢于发送方生成它,消息的数量将会在队列里增加。同时,接收方可以离线当发送方还在发送消息。在这种情况下,接收方在线时会接收到消息(当它加入队列时)

消息队列通常提供消息代理。Message Broker是一个独立的应用程序(服务),其他应用程序

连接和发送/接收消息。消息代理负责存储直到接收器接收到消息。Message Broker可以跨机器路由消息传递消息到目标应用程序,直到接收方正确地处理它。Message Broker有时被称为一个面向消息的中间件(MOM)或者只是消息队列(MQ)

什么是DotNetMQ

是一个开源的消息代理,有如下特性:

持续或非持久性消息

保证交付的持久消息甚至系统崩溃

自动和手动路由信息的定制机图

支持多个数据库(MS SQL Server, MySQL, SQLite、基于内存的存储)

支持不存储,直接发送消息传递方式

支持请求/应答消息传递方式

易于使用的客户端库与DotNetMQ通信消息代理。

内置框架可以轻松地构建RMI服务消息队列。

支持ASP交付消息。

净Web服务的基于gui的管理和监控工具。

易于安装、管理和使用。

完全使用c#(使用。net 3.5)

我喜欢名字DotNetMQ MDS首先创建它时(消息传递系统)。因为它是设计不仅仅是一个消息队列,但也作为一个系统,直接传递消息的应用程序和环境,提供了一个框架来构建应用程序服务

我称之为DotNetMQ因为它完全开发使用。.net和DotNetMQ名称更有纪念意义。所以不是原来的名字(和内部项目名称)是MDS和前缀是MDS的应用程序有许多类。

安装和运行DotNetMQ

解压缩binaries压缩包到C:\Program Files\DotNetMQ\ 路径下,运行INSTALL_x86.bat文件,64位系统运行INSTALL_x64.bat文件。

DotNetMQ应用程序

第一个应用程序最简单的,我认为有两个控制台应用程序运行在同一台机器上(事实上(将在本文的后面我们将看到)没有显著差异,如果应用程序在不同的机器上,唯一的区别是正确设置目的地的名称服务器的消息)

Application1: 从用户得到一个字符串消息并将其发送给Application2

Application2: 将传入消息写入控制台屏幕上

注册应用程序DotNetMQ

我们需要注册应用程序一旦DotNetMQ使用它们。这是一个非常简单的过程。DotNetMQ经理(MDSManager运行。exe DotNetMQ程序文件夹中(默认值:C:\ program Files \ DotNetMQ \)),并打开应用程序从应用程序菜单列表。点击添加新的应用程序为应用程序按钮,输入一个名称

Application1和Application2应用程序添加到DotNetMQ如上所述。最后,应用程序必须像下面的列表

这个屏幕显示了应用程序DotNetMQ注册。连接的客户列显示应用程序的实例的计算,目前DotNetMQ相连。不需要重启DotNetMQ因为这个屏幕的变化

Application1

创建一个新的控制台应用程序名称Application1 MDSCommonLib在Visual Studio并添加一个引用。连接到DotNetMQ dll提供必要的类。然后编写以下代码的程序。cs文件:

在创建MDSClient对象时,我们通过连接到DotNetMQ的应用程序名称。有了这个构造函数,我们连接到DotNetMQ在本地服务器上(127.0.0.1)默认端口号(10905)。重载的构造函数可以用来连接到另一台服务器和端口

MDSClient CreateMessage方法返回一个IOutgoingMessage类型的对象。MessageData属性是实际的数据发送到目标应用程序。这是一个字节数组。我们将用户输入的文本转换为一个字节数组使用UTF8编码。TheDestinationApplicationName和DestinationServerName属性用于设置消息的目的地址,如果我们不指定目标服务器,它是假定本地服务器。最后,我们发送消息

Application2

创建一个新的控制台应用程序名称Application2在Visual Studio,MDSCommonLib添加一个引用。dll和编写下面的代码:

相关文档
最新文档