C#下消息中间件开发示例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#下使用消息中间件ActiveMQ和框架开发示例
1. 消息中间件简介
1.1 消息中间件定义
中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算机资源和网络通信。
因而中间件是指一类软件,是基于分布式处理的软件,最突出的特点是其网络通信功能。也可认为中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,可以有符合接口和协议的多种实现。
中间件可分为六类:
1) 终端仿真/屏幕转换
2) 数据访问中间件(UDA)
3) 远程过程调用中间件(RPC)
4) 消息中间件(MOM)
5) 交易中间件(TPM)
6) 对象中间件
消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
消息中间件可以即支持同步方式,又支持异步方式。异步中间件比同步中间件具有更强的容错性,在系统故障时可以保证消息的正常传输。异步中间件技术又分为两类:广播方式和发布/订阅方式。由于发布/订阅方式可以指定哪种类型的用户可以接受哪种类型的消息,更加有针对性,事实上已成为异步中间件的非正式标准。
面向消息的中间件(Message Oriented Middleware,MOM),提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的MOM通信。MOM提供了有保证的消息发送(至少是在尽可能地做到这一点),应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节。
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
1.2 ActiveMQ介绍
ActiveMQ是Apache Software Foundation下的一个项目,它支持JMS 1.1规范,是用Java编写免费开源消息中间件产品。
ActiveMQ的一大特点是支持多种语言的客户端开发,例如Java,C,C++,C#,Perl,Python,Ruby,Delphi,Ajax,Javascript等。
1.3 利用消息中间件工作的原理
2. ActiveMQ安装及使用
2.1 安装JDK
下载JDK,可到sun的官方网站/javase/downloads/index.jsp或FTP的software/Java/JDK目录下载。
执行安装文件,将JDK安装至本地磁盘。
设置环境变量,添加JAVA_HOME变量,值为JDK的安装目录。
设置PATH变量,将%JAVA_HOME%\bin加入PATH中。
测试JDK是否安装正确,打开命令行窗口,输入Java –version命令,如安装正确将显示安装的Java版本号。
2.2 安装ActiveMQ
下载ActiveMQ,可在官方网站/download.html或FTP的software/Apache Software Foundation目录下载。
解压缩至本地磁盘,其中bin目录为系统启动目录,lib目录中的jar文件可用于Java 客户端的开发。
2.3 运行ActiveMQ
在bin目录下运行activemq
系统启动后,将弹出运行窗口,如果要关闭ActiveMQ,只需用关闭此窗口即可。
打开浏览器,在地址栏输入http://127.0.0.1:8161/admin,即可进入管理界面。
如果安装正确,将可以看到上述页面,也可访问demo页面http://127.0.0.1:8161/demo/学习样例。
3. 安装开发C#客户端所需的Spring框架3.1 NMS
要让C#开发的客户端能够与Java开发的消息中间件代理ActiveMQ实现通信,是基于.NET Message API(NMS)实现的,NMS的提供方很多,具体介绍可以参考/nms/。
但使用NMS最简便的方式就是使用Spring框架,因为Spring的消息中集成了NMS,API的形式和使用方式与Java的开发包中提供的API基本相同。
3.2 Spring Framework
Spring最初是Java下的一种轻量级开发框架,提供了IOC,AOP等的集成,在Java 开发中非常流行。之后出现了,把Spring框架中的核心概念应用于其中。NMS 也仅仅是框架提供的功能中很小的一部分。就是利用各种强大的设计模式作为工具来管理我们的项目体系结构。使用优秀和久经考验的设计模式,使我们能够科学合理的管理和整合我们企业级开发中的各个层面及一些分散的组件,并良好的协调和处理它们之间的关系,增强项目的健壮性。的组成如图: