DotNetMQ

net的MSMQ(消息队列)的使用和配置方法详细讲解 大神的资料--此文件有详细的范例,涉及到了MSMQ的调用、权限等关键技术和方法。附赠的文档非常详细的讲解了范例的说明,详细讲解了MSMQ的相关知识等技术应用。通过本资料就可以完全掌握MSMQ消息队列的技术 立即下载

DotNetMQ-基于C#和.NET框架的开源消息队列系统

这是一位NB的土耳其开发人员基于C#和.NET框架,编写的开源消息队列系统DotNetMQ。DotNetMQ消息组件支持消息可靠传输、路由、负载均衡、服务器部署图(Server Graphs)等等。
企业级应用系统经常需要通过消息来进行沟通或集成,在Microsoft 平台,还有其他的类似解决方案,如MSMQ、BizTalk、SQL Server Service Broker等等,这些产品或解决方案有各自的特点和适用场景。这里推荐的DotNetMQ消息系统,也是其适应的业务场景。

DotNetMQ 消息系统特性列表:

  • Persistent or non-persistent messaging.
  • Guaranteed delivery of persistent messages even in a system crash.
  • Automatic and manual routing of messages in a custom machine graph.
  • Supports multiple databases (MySQL, SQLite, and memory-based storage for now).
  • Supports don’t store, direct send style messaging.
  • Supports Request/Reply style messaging.
  • Easy to use client library to communicate with the DotNetMQ Message Broker.
  • Built-in framework to easily construct RMI services upon message queues.
  • Supports delivering messages to ASP.NET Web Services.
  • GUI-based management and monitoring tool.
  • Easy to install, manage, and use.
  • Written entirely in C# (using .NET Framework 3.5).

在多个Server 之间自动路由消息:

EntLib.com Team 随后会提供针对DotNetMQ 消息队列系统在.NET项目中更详细的中文使用范例。

DotNetMQ的具体介绍和源码下载,请访问如下链接:
DotNetMQ: A Complete Message Queue System for .NET

 

DotNetMQ-基于C#和.NET框架的开源消息队列系统 – 安装部署及消息发送接收范例

关于DotNetMQ 开源消息队列系统的介绍,可参考如下文章:

DotNetMQ-基于C#和.NET框架的开源消息队列系统

下面具体介绍如何安装、部署以及使用DotNetMQ 消息组件。

1. 先看看DotNetMQ 项目源码

DotNetMQ 项目是消息组件服务;MDSManager 项目消息组件的管理界面,用来配置系统中的客户端机器,如下图所示。

MDSCommonLib 项目是客户端系统需要引用的DLL程序集,使客户端系统可以和MDS 服务进行交互。

2. 部署DotNetMQ 服务

该服务编译的DLL程序集在如下目录 — DotNetMQ_Sources\DotNetMQ\bin\Debug

在CMD窗口中,在上述目录下,执行如下命令,安装部署 DotNetMQ 服务:

installutil dotnetmq.exe

看看安装好的DotNetMQ服务,并启动服务。

3. 注册和配置DotNetMQ 消息应用程序

在安装部署好DotNetMQ服务之后,开始运行MDSManager.exe 程序,添加和注册客户端应用程序,如下所示,添加Application1和Application2 应用程序。

如上图所示,添加好应用程序配置之后,可以到DotNetMQ_Sources\DotNetMQ\bin\Debug 目录下,查看MDSSettings.xml 配置文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? xml version = "1.0" encoding = "utf-8" ?>
< MDSConfiguration >
< Settings >
< Setting Key = "ThisServerName" Value = "this_server" />
< Setting Key = "StorageType" Value = "SQLite" />
</ Settings >
< Servers >
< Server IpAddress = "127.0.0.1" Port = "10905" Adjacents = "" />
</ Servers >
< Applications >
< Application />
< Application />
</ Applications >
</ MDSConfiguration >

4. 开发和运行客户端范例程序

在Visual studio 2010 开发工具下,编写2个简单的Console 应用程序:Application1和Application2。其中,Application1 用来发送消息;Application2 用来接收并显示消息。

在上述程序中,需要添加对 MDSCommonLib 程序集的引用,并且在代码中添加MDS.Client 命名空间的引用。

Application1 发送消息部分的代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MDS.Client;
namespace Application1
{
class Program
{
static void Main( string [] args)
{
var mdsClient = new MDSClient( "Application1" );
mdsClient.Connect();
Console.WriteLine( "输入文本,并按回车键传送消息给Application2,输入exit退出。" );
while ( true )
{
var messageText = Console.ReadLine();
if ( string .IsNullOrEmpty(messageText) || messageText == "exit" )
{
break ;
}
  
var message = mdsClient.CreateMessage();
message.DestinationApplicationName = "Application2" ;
message.MessageData = Encoding.UTF8.GetBytes(messageText);
message.Send();
}
mdsClient.Disconnect();
}
}
}

Application2 接收消息的代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MDS.Client;
namespace Application2
{
class Program
{
static void Main( string [] args)
{
//Create MDSClient object to connect to DotNetMQ
//Name of this application: Application2
var mdsClient = new MDSClient( "Application2" );
  
//Register to MessageReceived event to get messages.
mdsClient.MessageReceived += MDSClient_MessageReceived;
//Connect to DotNetMQ server
mdsClient.Connect();
  
//Wait user to press enter to terminate application
Console.WriteLine( "输入回车键退出..." );
Console.ReadLine();
//Disconnect from DotNetMQ server
mdsClient.Disconnect();
}
  
/// <summary>
/// This method handles received messages from other applications via DotNetMQ.
/// </summary>
/// <param></param>
/// <param>Message parameters</param>
static void MDSClient_MessageReceived( object sender, MessageReceivedEventArgs e)
{
//Get message
var messageText = Encoding.UTF8.GetString(e.Message.MessageData);
//Process message
Console.WriteLine();
Console.WriteLine( "接收的消息 : " + messageText);
Console.WriteLine( "发送方应用程序 : " + e.Message.SourceApplicationName);
  
//Acknowledge that message is properly handled
//and processed. So, it will be deleted from queue.
e.Message.Acknowledge();
}
}
}

启动Application1应用程序之后,再次查看MDSManager管理程序,发现Connected Clients由原来的 0 变成 1,说明现在有1个Application1应用程序连接到DotNetMQ服务了。

在Application1的运行窗口,输入消息:

Hello, welcome to www.entlib.com ecommerce system

您好,欢迎访问 www.entlib.com 电子商务平台

启动Application2 应用程序,就可以在Application2的应用程序界面看到接收的消息,如下图所示。

最后,在Application1应用程序输入 exit 退出应用程序。当然在Application2 应用程序最后也可输入 exit 退出应用程序。

如果Application1应用程序启动,并发送消息;而Application2应用程序尚未启动,Application1发送的消息则默认存放在SQLite 数据库中,关于SQLite数据库的简单介绍,可参考:SQLite 开源的嵌入式关系数据库

参考链接:

DotNetMQ-基于C#和.NET框架的开源消息队列系统

SQLite 开源的嵌入式关系数据库

 

DotNetMQ-基于C#和.NET框架的开源消息队列系统 – 多实例发送和接收消息

在《DotNetMQ-基于C#和.NET框架的开源消息队列系统》一文中,简要介绍了DotNetMQ消息组件的功能。

在《DotNetMQ-基于C#和.NET框架的开源消息队列系统 – 安装部署及消息发送接收范例》一文中,详细介绍了DotNetMQ消息组件的安装部署及消息发送接收范例,通过该范例,可以在实际项目中应用DotNetMQ 消息组件。

本文进一步演示一些多实例(Multiple Instance)场景。

针对上述范例,如果Application2 应用程序有多个实例在运行,到底哪一个Application2 应用程序实例接收到消息呢?

在这种情况下,DotNetMQ 将按顺序发送消息给对应的应用程序,如下图所示。

Application1发送的消息,会按顺序、逐个由三个Application2应用程序实例分别接收,但是每一个消息仅由一个应用程序实例接收,每一个应用程序实例接收不同的消息。其实,这一情况一般不太适合实际的业务场景。

下面在分析另一个业务场景,多个消息发送方,一个消息接收方。

如下图所示,有两个Application1 应用程序 – 发送消息给Application2;Application2 应用程序只有一个实例,会同时接收来自多个Application1应用程序实例的消息。

DotNetMQ 支持消息队列,不支持消息主题(Topic),因此消息仅仅发送给唯一一个接收者,而不是同时发送给多个实例。也就是说,DotNetMQ 支持“一个消息发送方 — 一个消息接收方”,而不是“一个消息发送方 — 多个消息接收方”。

MDSClient 仅仅根据应用程序名称来接收消息,DotNetMQ 消息组件和经典的发布/订阅(Pub/Sub)消息系统不一样哦。

其他参考链接:

DotNetMQ-基于C#和.NET框架的开源消息队列系统

DotNetMQ一个完整的消息队列(.NET) 包括源程序,执行文件,例子程序和文档。 在这篇文章中,我将介绍一个新的、独立的、开源的,完全基于C#和.NET Framework3.5的消息队列系统,DotNetMQ是一个消息代理,它包括确保传输,路由,负载均衡,服务器图等等多项功能。我将从解释消息的概念和消息代理的必要性讲起,然后,我会说明什么是DotNetMQ,以及如何使用它。 立即下载

相关推荐

消息队列.zip

消息队列.zip

多系统通讯-DotNetMQ

很久都没有写博客了,从15年4月份一直忙到现在,我才有时间去做梳理和总结,因为我提离职了,感觉整个世界突然变得不一样,随着而来的就是心情的放松,写一篇文章也是对过去一年多工作的梳理,加深印象 积累和沉淀。 因为从事的公司是建筑行业的公司,产品也是基于建筑管理体系,整体的项目包含了web端、客户端、服务端,以及因为产品功能需要的一些工具类的软件。在这种多系统的体系结构之下,我们需要进行多个系统之间...

weixin_34355715的博客 210

C# 消息队列.zip

C#编程环境下的系统消息队列通讯实现(MessageQueue),包含ini文件操作,多线程运行(Thread)

一些开源的消息服务器--来自oschina检索结果

开源消息系统 NSQ http://www.oschina.net/p/nsq NSQ 是无中心设计、节点自动注册和发现的开源消息系统。可作为内部通讯框架的基础。 特点: 1.追求简单部署 2.追求高可用、避免单点故障、无中心设计 3.确保消息送达 4.生产者消费者自动发现 最近更新: #翻译# 深入NSQ 分布式消息平台之旅 发布于 4个月前 Ruby 消

alaclp的专栏 1744

MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信demo

此demo具体情况可以产考相关博文了解,博文链接:https://blog.csdn.net/panwen1111/article/details/79245161

DDMQ消息队列 v1.0

为您提供DDMQ消息队列下载,DDMQ 是滴滴出行架构部基于 Apache RocketMQ 构建的消息队列产品。作为分布式消息中间件,DDMQ 为滴滴出行各个业务线提供了低延迟、高并发、高可用、高可靠的消息服务。DDMQ 提供了包括实时消息、延迟消息和事务消息在内的多种消息类型以满足不同的业务需求。 用户通过统一的 Web 控制台和傻瓜式的 SDK 即可轻松接入 DDMQ 生产和消费消息,体验功能丰富、稳定的消息服务。主要功

DotNetMQ 项目推荐

DotNetMQ 项目推荐 1. 项目基础介绍和主要编程语言 DotNetMQ 是一个开源的消息队列系统,专为 .NET 平台设计。该项目完全使用 C# 编写,旨在为 .NET 开发者提供一个功能全面、易于使用的消息队列解决方案。DotNetMQ 不仅支持持久化和非持久化消息传递,还提供了多种数据库支持,包括 MS SQL Server、MySQL、SQLite 以及内存存储。 2. 项目的核心功...

gitblog_00544的博客 576

.Net消息队列的使用方法

.Net使用消息队列,借助windows组件来存储要完成的一系列任务,不用程序使用同一个队列,方便不同程序之间的数据共享和协作…… 以本人经验,这个在某个方面类似于session(当然还有很多方面不同),相同之处:session可以把信息存储在aspnet_state服务中,网站重新编译或者重新启动网站,session不会丢失(session超时是正常情况,这种情况除外)。 win7中安装消息队列组件,其他操作系统请百度搜索相关资料。   如果服务没有自动启动,需要启动服务: 先创建队列,再使用队列,队列中的消息,发送一个多一个,接收一个少一个,先进先出。 代码如下:using Syste

DotNetMQ 开源项目使用教程

DotNetMQ 开源项目使用教程 1. 项目的目录结构及介绍 DotNetMQ 项目的目录结构如下: dotnetmq/ ├── binaries/ ├── doc/ ├── samples/ ├── src/ ├── .gitignore ├── LICENSE └── README.md 目录结构介绍 binaries/: 存放编译后的二进制文件。 doc/: 存放项目的文档文件,包括用...

gitblog_00601的博客 563

一图文带您认识磁编码器

磁编码器是以磁电原理技术生产的编码器。 磁编码器工作原理: 当电流通过一个位于磁场中的导体的时候,磁场会对导体中的电子产生一个垂直于电子运动方向上的的作用力,从而在垂直于导体与磁感线的方向上产生电势差。 如果让施加在这个导体上的磁场以电流流经路径为轴线,按照上图箭头所示的方向旋转,那么这个霍尔电势差就会因为磁场与导体之间角度的改变而发生变化,而这个电势差的变化趋势,与之前一文中次级线圈旋转时的输出电压一样,是一条正弦曲线。因此,基于这个通电导体两侧的电压,就可以反推计算出磁场旋转的角度了。 .

encoder_yang的博客 2万+

OpenCV 常用的API总结(迅速查询)

OpenCV基本操作 openCV安装 读取图片(IO操作) 绘制集合图形 图像加法以及混合操作 OpenCV图像处理 图像几何变换 形态学操作 图像平滑 直方图 边缘检测 模板匹配 傅里叶变换 轮廓检测 图像分割 图像特征提取 SIFT检测关键点 视频读写............

Peyzhang的博客 3936

DotNetMQ的一个小demo

DotNetMQ是一个新的、独立的、开源的,完全基于C#和.NET Framework3.5的消息队列系统 下载源代码 - 1.28 MB 下载二进制文件 - 933 KB 下载例子 - 534 KB 下面具体介绍如何安装、部署以及使用DotNetMQ 消息组件。 1. 先看看DotNetMQ 项目源码 DotNetMQ 项目是消息组件服务;MDSM

dz45693的专栏 2018

学习笔记之——Event Camera(事件相机)调研

概述 Event Camera是一种bio-inspired sensor,对应的领域为bio-inspired vision。对于传统的相机,从某种程度上,是捕获一个静态/静止的空间,而Event Camera的目的是:敏感地捕捉运动的物体。 对于传统RGB-camera,相机传回的信息是同步的,所谓同步,就是在某一时刻t,相机会进行曝光,把这一时刻所有的像素填在一个矩阵里回传,一张照片就诞生了。一张照片上所有的像素都对应着同一时刻。至于视频,不过是很多帧的图片,相邻图片间的时间间隔...

gwpscut的博客 3万+

开源消息中间件DotNetMQ

由于这个开源项目对我这种中间件菜鸟很有帮助,因此,我将官方的说明文档翻译如下: Introduction   In this article, I will introduce a new and independentOpen Source Message Queue systemthat is entirely built in C# and .NET framework 3.5.D...

weixin_30673715的博客 149

从DDH到FastANI:原核生物分类黄金标准的进化史与技术对比

本文系统梳理了原核生物分类标准从DDH到FastANI的四次技术革命,详细解析了95%相似度阈值的科学依据及应用场景。通过对比DDH、16S rRNA、ANI和FastANI的技术特点与性能指标,为微生物研究者提供基因组分类的实战指南,并展望第三代测序时代的分类新挑战。

weixin_29275257的博客 413

CTF实战:手把手教你用Python破解转轮机加密(附完整脚本)

本文详细介绍了如何使用Python逆向破解转轮机加密,特别针对CTF比赛中的Crypto类题目。通过解析转轮机加密原理、实战Python脚本编写及调试技巧,帮助参赛者快速掌握破解方法,提升在攻防世界等CTF比赛中的解题效率。

silver的专栏 1116

【翻译】DotNetMQ: 一个.NET版完整的消息队列系统

在一个大型的分布式系统中,消息队列是不可缺少的中间件,能很好的解决异步消息、应用解耦、均衡并发等问题。在.net中,偶然发现一个效率不错、安全可靠、功能齐全的消息组件,忍不住翻译过来,供大家快速预览。 注:原作者用windows服务启动消息队列服务,但是本人在win10上测试出错,可自行改成控制台启动消息队列服务,然后用第三方工具注册服务(如:SrvanyUI) 原文:http://...

aochiba1882的博客 255

从菜鸟到大神:VSCode助力HTML开发全攻略

本文全面介绍 VSCode 在 HTML 开发中的高效应用。先引导读者完成 VSCode 的安装与个性化设置,助其快速适应开发环境;接着推荐 Live Server、Prettier 等实用插件,实现实时预览、代码格式化等功能,提升开发效率。通过详细的开发实战步骤,从新建文件到添加样式,带领读者掌握 HTML 基础结构与常用标签使用。还分享代码片段管理、多人协作等进阶技巧,解决常见开发问题。旨在帮助开发者利用 VSCode,轻松高效完成 HTML 开发,打造优质网页。

邓邓子的博客 3365

【亲测免费】 DotNetMQ:为.NET打造的完整消息队列系统

DotNetMQ:为.NET打造的完整消息队列系统 项目介绍 DotNetMQ是一款开源的消息代理系统,专为.NET平台设计。它不仅提供了持久化和非持久化的消息传递功能,还确保了在系统崩溃时持久化消息的可靠传递。DotNetMQ支持自定义机器图中的消息自动和手动路由,并兼容多种数据库(如MS SQL Server、MySQL、SQLite以及内存存储)。此外,它还支持直接发送的“不存储”消息模式和...

gitblog_00649的博客 1048

[Python] -项目实战10- 用 Python 自动化批量重命名文件

本文介绍了使用Python实现文件批量重命名的技术方法。主要内容包括:1)使用os和pathlib模块进行基础文件操作;2)提供多种实用脚本示例,如添加序号、替换字符、添加时间戳等;3)进阶功能包括用户输入和错误处理;4)GUI工具实现方案;5)常见问题与优化建议。文章详细讲解了从简单到复杂的批量重命名实现方法,帮助读者快速掌握这一提高工作效率的技能。建议开发者注意路径处理、错误管理等细节,确保脚本稳健运行。

每日出拳老爷子的博客 815

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

977

.NET消息队列DotNetMQ核心架构与实战指南

消息队列作为分布式系统的关键组件,通过解耦生产者和消费者实现异步通信。其核心原理基于存储转发机制,支持点对点和发布订阅模式,在微服务架构中尤为重要。DotNetMQ作为专为.NET生态优化的消息中间件,采用Broker架构设计,提供可靠传输保障和灵活路由策略。该系统原生支持SQL Server、MySQL等多种存储引擎,并内置管理控制台实现可视化监控。在金融交易、电商订单等需要高可靠性的场景中,DotNetMQ的持久化机制和ACK确认机制能有效防止消息丢失。通过集群部署和负载均衡配置,可满足企业级高并发需求

weixin_30582943的博客 312

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: sql server 备份清除历史文件作业
下一篇: Enum.GetValues
andycode
博客等级 码龄17年 12粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值