我的编程空间,编程开发者的网络收藏夹
学习永远不晚

VB.NET消息队列是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

VB.NET消息队列是什么

这篇文章主要介绍VB.NET消息队列是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

消息队列是 Windows 2000(NT也有MSMQ,WIN95/98/ME/XP不含消息队列服务但是支持客户端的运行)操作系统中通讯的基础,也是用于创建分布式、松散连接通讯应用程序的工具。这些应用程序可以通过不同种类的网络进行通讯,也可以与脱机的计算机通讯。VB.NET消息队列分为用户创建队列和系统队列,用户队列分为:

· "公共队列"在整个可传递消息的VB.NET消息队列网络中复制并传输,并且有可能由网络连接的所有站点访问。

· "专用队列"不在整个网络中发布。相反,它们仅在所驻留的本地计算机上可用。专用队列只能由知道队列的完整路径名或标签的应用程序访问。

· "管理队列"包含确认在给定"消息队列"网络中发送的消息回执的消息。指定希望 MessageQueue 组件使用的管理队列

· "响应队列"包含目标应用程序接收到消息时返回给发送应用程序的响应消息。指定希望 MessageQueue 组件使用的响应队列。

系统队列分为:

· "日记队列"可选地存储发送消息的副本和从队列中移除的消息副本。

· "死信队列"存储无法传递或已过期的消息的副本。

· "专用系统队列"是一系列存储系统执行消息处理操作所需的管理和通知消息的专用队列。

现在大家对VB.NET消息队列有了简单的了解后,就该进入主题了。要使用MSMQ进行软件开发需要安装MSMQ。安装完后就该进入实际的开发阶段。先打开IDE中的"服务器资源管理器"展开你想建立消息队列的计算机名,再展开"消息队列"右击它在弹出菜单中选择"新建"建立一个新的消息队列,并为它指定一个名字,这个名字可以随意。也可以通过编程来完成,代码如下:

  1. system.Messaging.MessageQueue
    .Create(".\Private$\MyPrivateQueue")

  2. '建立专用队列  

  3. System.Messaging.MessageQueue.
    Create("myMachine\MyQueue")

  4. '建立公共队列 

其实我认为使用哪种方法并不重要,重要的是搞清楚专用队列和公共队列的差别(其他队列不是必须的)。在本例中是通过"服务器资源管理器"分别在服务器上建立了专用队列和公共队列。
程序功能:本程序分为两部分包括服务器程序(安装在SQL Server服务器上)和客户端程序,客户端的作用是用来编写t-sql语句并将t-sql语句放在消息中,并将消息发送到SQL Server服务器上的消息队列中去。服务器程序检查指定的VB.NET消息队列当发现有新消息到达时,就开始执行消息中的内容,由于消息中的内容是t-sql语句所以服务器端实际上是执行对数据库的操作。
客户端程序:

  1. public Sub client()  

  2. Dim tM As New System.Messaging.
    MessageQueue()  

  3. tM.Path = ".\Private$\jk" '
    "FORMATNAME:PUBLIC=3d3dc813-
    c555-4fd3-8ce0-79d5b45e0d75"
    '与指定计算机中的消息队列建立连接,  

  4. Dim newMessage As New System.
    Messaging.Message(TextBox1.Text)
    '接受文本筐的t-sql语句  

  5. newMessage.Label = "This is 
    the label"'消息名字,  

  6. tM.Send(newMessage)'发送消息  

  7. End Sub  


服务端程序:

  1. public Sub server()  

  2. Dim NewQueue As New System.Messaging
    .MessageQueue(".\Private$\jk")'
    "FORMATNAME:PUBLIC=3d3dc813-c555-
    4fd3-8ce0-79d5b45e0d75"'与指定计算机
    中的消息队列建立连接,  

  3. Dim m As System.Messaging.Message  

  4. '查看VB.NET消息队列中的消息  

  5. m = NewQueue.Receive   

  6. m.Formatter = New System.Messaging.
    XmlMessageFormatter(New String() 
    {"System.String,mscorlib"})  

  7. Dim st As String  

  8. st = m.Body'消息队列中消息的消息内容。
    既sql语句  

  9. Dim con As New OleDb.OleDbConnection
    ("输入自己的数据库连接字符串")  

  10. con.Open()  

  11. Dim com As New OleDb.OleDbCommand
    (st, con)'执行消息中的sql语句  

  12. com.ExecuteNonQuery()  

  13. con.Close()  

  14. End Sub  

在本程序中你会发现在sub client()中我并没连接数据库和请求数据,而是通过发消息来操作数据库的,这个好处是节省了两部分时间:

对数据库连解请求数据的时间。

从数据库返回数据的时间。

在很多情况下其实我们并不需要看见具体的数据就知道该怎么修改数据库中的数据。例如要删除张三的记录,就可以将一条简单的删除语句放入消息中,发给服务器让服务器程序去处理对数据的更改。

此外VB.NET消息队列的另一个主要用途也就是当前ERP软件中必不可少的,就是在断开连接时保存信息,当连接恢复时发送消息。消息在如下两种情况中无法迅速地传递到它们的队列:当队列驻留的计算机无法工作时,或当路由消息所需的域控制器无法工作时。"消息队列"可让您应对这些情况,使得在从网络上断开连接或必要的计算机或控制器无法工作时,仍可以继续发送消息。在这些情形下,消息暂时存储在本地计算机或传递路由上的某个计算机的队列中,直到完成传递所需的资源重新联机。

例如,假设有一个记录所有在出差的销售人员发送的订单的中央队列。这些销售人员每天的大部分时间都以断开连接的方式工作,记录来自客户站点的订单信息,并且每天拨号连接一次,将所有这些信息传输到中央队列中。因为消息在发送方断开连接时仍可发送到队列,所以销售人员可以在记录客户信息时立即发送他们的消息,但系统会缓存这些消息直到晚间进行拨号连接为止。

在断开连接时要怎么保存消息呢?向断开连接的队列发送消息同向可用队列发送消息的过程几乎完全相同。当要向其发送的队列不可用时,不必进行任何特殊的配置以使组件将消息存储在临时队列中。在client代码的tM.Path = ".\Private$\jk"后面有一条注释语句,其实这条语句就是实现向断开连接的队列发送消息的功能。只要将tM.Path = ".\Private$\jk"这条语句换成tM.Path = "FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75"其中PUBLIC后面的数字是要发送到计算机的guid数字。

这个数字可以打开那台计算机的消息队列的属性看见。使用这种方法就可以在断开连接的情况下保证对服务器的操作是有效。现在运行这个程序后,打开计算机管理,在"计算机管理"窗口中展开"服务和应用程序"-》"消息队列"-》"传出队列",你将在右边的窗口中看见你建立的消息。(如果你使用tM.Path = ".\Private$\jk"语句,在"计算机管理"窗口中展开"服务和应用程序"-》"消息队列"-》"专用队列"可以看见你建立的队列。)

其实消息队列的编程并不复杂,但它在网络环境的程序开发中是非常有用的,可以简化大量的开发过程和节省开发时间。而且,消息队列的编程有很大的灵活性,几乎可以解决网络编程的大部分问题。比如聊天程序,远程控制程序。

本文针对VB.NET消息队列做了一个简单的介绍,并举了一个例来说明怎么在.NET下使用消息编程,达到快速高效稳定的对数据库进行操作。***补充要说的是在Internet中也一样可以使用消息队列,只需要将tM.Path = "FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75语句后面的数字变成消息队列所在服务器的数字就可以了。但是要提醒大家的是使用消息在传输时将占有大量的带宽,所以在不是必须的时候,Internet下的编程不要使用消息。

以上是“VB.NET消息队列是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

VB.NET消息队列是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

VB.NET消息队列是什么

这篇文章主要介绍VB.NET消息队列是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!消息队列是 Windows 2000(NT也有MSMQ,WIN95/98/ME/XP不含消息队列服务但是支持客户端的运行)操作系
2023-06-17

消息队列的特点是什么

本篇内容主要讲解“消息队列的特点是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“消息队列的特点是什么”吧!什么是消息队列?消息队列( Message Queue )是一种进程间通信或同一进程
2023-06-04

Java中消息队列的作用是什么

这篇文章主要讲解了“Java中消息队列的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中消息队列的作用是什么”吧!1、 这些接口之间耦合比较严重,每新增一个下游功能,都要
2023-06-16

java消息队列应用场景是什么

这篇文章主要讲解了“java消息队列应用场景是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java消息队列应用场景是什么”吧!一、什么是队列队列(Queue)是一种常见的数据结构,其最
2023-06-29

java中RabbitMQ消息队列指的是什么

这篇文章主要介绍了java中RabbitMQ消息队列指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明RabbitMQ是用Erlang实现的一个高并发高可靠AM
2023-06-15

RabbitMQ 消息队列

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入
2023-01-31

Python消息队列

消息中间件 --->就是消息队列异步方式:不需要立马得到结果,需要排队同步方式:需要实时获得数据,坚决不能排队例子:#多进程模块multiprocessingfrom multiprocessing import Processfrom m
2023-01-31

RabbitMQ消息队列

一、简介  RabbitMQ是一个在AMQP基础上完整的、可复用的企业消息系统,遵循Mozilla Public License开源协议。MQ全称Message Queue(消息队列),它是一种应用程序对应用程序的通信方式。应用程序通过读写
2023-01-31

下一代消息队列Pulsar到底是什么

Pulsar是一种下一代的分布式消息队列系统。它由Apache软件基金会开发和维护,旨在提供高可用性、可扩展性和灵活性的消息传递解决方案。Pulsar的设计目标是解决传统消息队列系统中的一些限制和挑战。与其他消息队列系统不同,Pulsar具
2023-09-22

WCF消息队列的解决方案是什么

WCF消息队列的解决方案是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。消息就是信息的来源,在WCF中消息队列分为公共队列、专用队列、管理队列、响应队列四种,下面我们就简单
2023-06-17

Redis消息队列实现的方法是什么

Redis消息队列通常通过使用Redis的List数据结构来实现。消息生产者可以将消息推送到List中,而消息消费者可以从List中获取消息进行处理。通过使用Redis的原子操作来实现消息的生产和消费,可以确保消息队列的高效性和可靠性。一些
Redis消息队列实现的方法是什么
2024-04-22

kafka之消息队列

大数据工具 kafka 学习之前需要先了解队列的相关知识了解万队列就知道kafka的用处之后再详细了解kafka的具体知识和操作
kafka之消息队列
2021-05-31

java消息队列mq的使用场景是什么

Java消息队列(MQ)的使用场景主要包括以下几个方面:1. 异步通信:当系统中的不同模块之间需要进行异步通信时,可以使用消息队列来实现。例如,订单系统和库存系统之间的通信,订单系统生成订单后将消息放入消息队列,库存系统从消息队列中获取订单
2023-10-09

SpringBoot整合消息队列RabbitMQ的方法是什么

本篇内容介绍了“SpringBoot整合消息队列RabbitMQ的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介在Spring
2023-07-05

python消息队列Queue

实例1:消息队列Queue,不要将文件命名为“queue.py”,否则会报异常“ImportError: cannot import name 'Queue'”#coding=utf-8from multiprocessing import
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录