




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 课程名称:题目名称:专业班级:学生姓名:学 号:指导教师:Liux教程Linux基于Rubbit MQ消息中间体的部署与应用2013级软件工程胡同富、王帅、李广、王猛、袁本亮、胡佳慧、邱瑾51302041042、51302041040、51302041013、51302041005、51302041039、51302041009、51302041012王硕二一五年五月二十日目 录(请从任务书开始设置页码,页码居中,5号字,宋体,目录采用自动插入方式生成)蚌埠学院计算机科学与技术系课程设计任务书课 程Linux教程班级2013级软件工程指导教师王硕题 目Linux基于Rubbit MQ消息中间体的部署与应用完成时间2015年5月25日至2015年6月 21日主要内容要求完成以下功能:1安装MQ程序。2配置MQ队列。3能够实现Rubbit MQ启动测试。4能够传输数据。5设计良好的交互界面。6撰写课程设计报告。设计报告要求1封面:(格式附后)2课程设计任务书3课程设计报告:(1) 系统背景意义(2) 技术介绍(3)系统架构,各功能模块和流程图(4)系统部署方式以及实现(4) 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。版面要求1 题目用黑体三号,段后距18磅(或1行),居中对齐;2 标题用黑体四号,段前、段后距6磅(或0.3行);3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一”、“”、“1”、“”顺序编号。5 本文档材料A4纸双面打印。上机时间安排星期周次一二三四五六日第14周-第17周13软件工程1、2节13软件工程1、2节 指导时间地点上机时间,多媒体技术实验室(B530、B528)计算机科学与技术系课程设计成绩评定标准及成绩评定表学生姓名:胡同富、王帅、李广、王猛、袁本亮、胡佳慧、邱瑾 学号:51302041042、51302041040、51302041013、51302041005、51302041039、51302041009、51302041012班级: 13级软件工程 项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x 1(2)queue持久化,在声明时指定durable = 1(3)消息持久化,在投递时指定delivery_mode = 2(1是非持久化)如果exchange和queue都是持久化的,那么它们之间的binding也是持久化的。如果exchange和queue两者之间有一个持久化,一个非持久化,就不允许建立绑定。三系统架构 我使用Linux服务器(ubuntu 9.10 64位),安装RabbitMQ非常方便。先运行如下命令安装erlang:apt-get install erlang-nox下载RabbitMQ的安装包,如下安装:dpkg -i rabbitmq-server_2.6.1-1_all.deb安装完后,使用/etc/init.d/rabbitmq-server start|stop|restart来启动、停止、重启rabbitmq。在正式应用之前,我们先在RabbitMQ里创建一个vhost,加一个用户,并设置该用户的权限。使用rabbitmqctl客户端工具,在根目录下创建”/pyhtest”这个vhost:rabbitmqctl add_vhost /pyhtest创建一个用户名”pyh”,设置密码”pyh1234:rabbitmqctl add_user pyh pyh1234设置pyh用户对/pyhtest这个vhost拥有全部权限:rabbitmqctl set_permissions -p /pyhtest pyh “.*” “.*” “.*”后面三个”*”代表pyh用户拥有对/pyhtest的配置、写、读全部权限设置好后,开始编程,我用Perl写一个消息投递程序(producer):#!/usr/bin/perluse strict;use Net:RabbitMQ;use UUID:Tiny;my $channel = 1000; # channel ID,可以随意指定,只要不冲突my $queuename = “pyh_queue”; # 队列名my $exchange = “pyh_exchange”; # 交换机名my $routing_key = “test”; # routing keymy $mq = Net:RabbitMQ-new(); # 创建一个RabbitMQ对象$mq-connect(“localhost”, vhost = “/pyhtest”, user = “pyh”, password = “pyh1234 ); # 建立连接$mq-channel_open($channel); # 打开一个channel$mq-exchange_declare($channel, $exchange, durable = 1); # 声明一个持久化的交换机$mq-queue_declare($channel, $queuename, durable = 1); # 声明一个持久化的队列$mq-queue_bind($channel, $queuename, $exchange, $routing_key); # 使用routing key在交换机和队列间建立绑定for (my $i=0;$ipublish($channel, $routing_key, $string, exchange = $exchange , delivery_mode = 2 ); # 将消息结合key以持久化模式投递到交换机$mq-disconnect(); # 断开连接消息接受程序(consumer)大概如下:#!/usr/bin/perluse strict;use Net:RabbitMQ;my $channel = 1001;my $queuename = “pyh_queue”;my $mq = Net:RabbitMQ-new();$mq-connect(“localhost”, vhost=”/pyhtest”, user = “pyh”, password = “pyh1234 );$mq-channel_open($channel);while (1) my $hashref = $mq-get($channel, $queuename);last unless defined $hashref;print $hashref-message_count, “: “, $hashref-body,”n”;$mq-disconnect();consumer连接后只要指定队列就可获取到消息。 投递完后,在/var/lib/rabbitmq/mnesia/rabbit$hostname/msg_store_persistent目录,产生2G多的持久化消息数据。在运行consumer程序后,这些数据都会消失,因为消息已经被消费了。集群配置单机环境下的集群配置:首先启动两个实例,rab和rab2,端口分别为9991和9992RABBITMQ_NODE_PORT=9991 RABBITMQ_NODENAME=rab rabbitmq-server -detachedRABBITMQ_NODE_PORT=9992 RABBITMQ_NODENAME=rab2 rabbitmq-server -detached二:停止rab2,并将其加入cluster集群中rabbitmqctl -n rab2 stop_apprabbitmqctl -n rab2 join_cluster rabrab(rab,这里的rab表示主机名)重新启动rab2RABBITMQ_NODE_PORT=9992 RABBITMQ_NODENAME=rab2 rabbitmq-server -detached查看集群的状态rabbitmqctl cluster_status -n rab显示如下信息表示集群配置正常:Cluster status of node rabrab .nodes,disc,rab2rab,rabrab,running_nodes,rabrab,partitions,.done.四部署方式 针对消息中间件服务器不能够上互联网,可以采用源文件编译的方式部署,下面描述源文件编译的部署过程。下载rabbitMQ源码包,下载地址如下。 /download.html下载Python和simplejson.py源码,下载地址分别如下。 /downloads/ /pypi/simplejson编译安装python。在当前目录下解压源码包。 tar zxvf Python-3.3.4.tgz cd Python-3.3.4 ./configure make make test make install编译安装simplejson.py源码。在当前目录下解压源码包。 tar xvf simplejson-3.3.3.tar.gz cd simplejson-3.3.3 python setup.py install下载erlang开发工具和运行时工具。 /download/otp_src_R16B03-1.tar.gz tar zxvf otp_src_R16B03-1.tar.gz cd otp_src_R16B03-1 ./configure make & make install 验证erlang开发工具安装是否正确,如下所示,若有返回,则安装成功。否则请检查安装过程。rootlocalhostotp_src_R16B03-1# erlErlang R16B03-1(erts-5.10.4) source 64-bit async-threads:10 hipe kernel-poll:falseEshell V5.10.4(abort with G)1 4+5.92halt().rootlocalhostotp_src_R16B03-1#下载RabbitMQ-Server源码包,地址如下。 /releases/rabbitmq-server/v3.2.3/rabbitmq-server-3.2.3.tar.gz cd rabbitmq-server-3.2.3 make make install TARGET_DIR=/opt/mq/rabbitmq SBIN_DIR=/opt/mq/rabbitmq/sbinMAN_DIR=/opt/mq/rabbitmq/man DOC_INSTALL_DIR=/opt/mq/rabbitmq/doc至此整个部署过程完成。总结编译安装需要源码包及其RPM包列表如下:源码包RPM包otp_src_R16B03-1.tar.gzPython-3.3.4.tgzrabbitmq-server-3.2.3.tar.gzsimplejson-3.3.3.tar.gzdocbook-style-xsl-1.75.2-6.el6.noarch.rpmflex-2.5.35-8.el6.x86_64.rpmlynx-2.8.6-27.el6.x86_64.rpmncurses-5.7-3.20090208.el6.x86_64.rpmncurses-devel-5.7-3.20090208.el6.x86_64.rpmxmlto-0.0.23-3.el6.x86_64.rpm五. RabbitMQ 应用测试(系统实现)5.1 平台发送端:linux 环境服务器:linux 环境接收端:Windows 环境5.2 开发工具及语言Eclipse、JAVA5.3 实验原理 发送端定义 5 个线程,每个线程连续不断地发送数据,数据大小为 6KB,RabbitMQ-Server 中定义 5 个 Exchange 和 5 个 Queue,Exchange 全部采用direct 类型,接收端 5 个接收方分别从 5 个队列中取数据,并行写入数据库,同时写入 JFrame,以动态显示所收到的内容,接收完毕后后,查询数据库,可获知每条消息的内容、发送时间、接收时间、耗时。原理图如下所示:图 5 实验原理图5.4 测试过程5.4.1 启动 RabbitM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纸黏土浮雕说课稿-2025-2026学年小学劳动三年级下册苏教版《劳动与技术》
- 8.2 电流的磁场说课稿-2025-2026学年初中物理九年级下册沪教版
- 科研机构采购管理制度和采购流程
- 2016北师大版数学必修二教学设计:1.7.1简单几何体的侧面积
- 办公楼宇网络安全保障协议
- 《快乐的夏令营-三位数除以一位数(一)》(教学设计)-2024-2025学年三年级上册数学浙教版
- 第一单元 氯气及氯的化合物教学设计-2025-2026学年高中化学苏教版2019必修第一册-苏教版2019
- 毛坯选择说课稿-2025-2026学年中职专业课-机械加工技术-机械类-装备制造大类
- 3.4电能与社会教学设计-2025-2026学年高中物理选修1-1沪科版
- 活动与探究 共筑美丽校园梦教学设计-2025-2026学年中职思想政治经济政治与社会(第4版)北师大版
- 微生物发酵中药研究进展
- 《矿业权评估指南》
- 机动车维修竣工出厂合格证样式
- 广东省地质灾害危险性评估报告
- 整套教学课件《现代心理与教育统计学》研究生
- 手机拍照技巧大全课件
- RBA(原EICC)ERT应急准备与响应培训课件
- 工业建筑钢筋工程监理实施细则
- 河西走廊课件
- 2023版北京协和医院重症医学科诊疗常规
- 人工膝关节置换术护理查房
评论
0/150
提交评论