没有合适的资源?快使用搜索试试~ 我知道了~
首页RabbitMQ开发中文文档
RabbitMQ开发中文文档
5星 · 超过95%的资源 需积分: 49 314 下载量 49 浏览量
更新于2023-06-13
1
收藏 637KB DOC 举报
RabbitMQ是一个消息服务器。从本质上讲,它接收生产者生产的消息,并发送给消费者。期间,它可以根据用户给定的规则来路由、缓存、持久化这些消息。此文为RabbitMQ的中文翻译文档
资源详情
资源推荐
1 发送"Hello World"消息
简介
是一个消息服务器。从本质上讲,它接收生产者生产的消息,并发送给消费者。期间,
它可以根据用户给定的规则来路由、缓存、持久化这些消息。
以下是 用到的一些专业术语:
1.生产的意思就是发送。发送消息的程序就是生产者,如下图所示:
队列就是接受消息的邮箱,由
提供。尽管消息在
和应用之间传递,但只能被封装在一个队列中。队列没有限制,可以储存任意多的消息它本质是
是一个无限的缓存。一个队列可以接收多个生产者发送来的消息,并可以把消息分发给多个消费者。
队列可以用下图表示:
3.消费类似于接收。等待接收消息的
程序就是消费者,如下图所示:
注意生产者、消费者和 服
务器不必位于同一台机器上,事实上大部
分都是如此。
"Hello World"示例
(使用 Java 版客户端)
此处有 个 程序:发送一个消息的生产者和一个接收消息并打印的消费者。为了上手方便,我
们将忽略程序的细节,只专注于核心部分。发送的消息的内容是“。
在下图中,“代表生产者,“代表消费者。中间的方块代表队列 的消息缓存器,储
存向消费者发送的消息。
Java 依赖
库
使用 协议,它是一个开放的、通用的消息协议。许多编程语言都实现了
协议。这里我们使用 版。
下载客户端依赖包,并核对一下它的签名。将其解压到你的工作目录中,并从此目录中获取 文
件:
!"
! !"#"#
$ 中央仓库也提供此依赖包%&' 是 ! ,(!' 是 !)
有了 依赖包,就可以编码了。
发送消息
我们将调用消息生产者 *
和消息消费者 !。生产者
和 连接并发送一
个消息,然后退出。
在 * 中导入依赖类:
import! !!+!,;
import! !!;
import! !-;
创建 * 类并给队列命名.
publicclassSend{
privatenalstatic*&/0/0120=3-3;
publicstaticvoidmain(*&[]&)
throws..'405!{
...
}
}
然后和服务器之间建立一个连接.
!+!,(!,=new!+!,();
(!,.66(3!-63);
!!!=(!,.7!();
-!-=!!.!-();
! 对象将 6!8 连接抽象化,封装了协议的版本和身份验证等。使用“!-6连接
本地的 服务器。如果想连接到其它机器,只需要修改机器名或 ' 地址即可。
下一步创建一个消息通道$!-),通过它来完成大部分的工作。发送消息之前,必须先创建一
个队列;然后将消息发送给它:
!-. 9!(/0/0120,false,false,false,null);
*&66&=3:3;
!-.6!6-(33,/0/0120,null,66&.&;,6());
*,6..(3<5=*>3+66&+3>3);
创建队列代码如上,当且仅当该队列不存在时,才会被创建。消息是字节数组,这样你就可以任意
地对消息的内容进行编码。
最后,我们关闭消息通道和连接?
!-.!6();
!!.!6();
这就是完整的 Send.java 类。
发送消息失败!
如果这是你第一次使用 而且没有看到发送的消息,那么你可能正在挠头中并很想知道哪
儿错了。也许服务器启动时没有足够的磁盘空间$默认情况下它至少需要 @A; 的磁盘空间),因此它
拒绝接收消息。检查一下服务器的 &B 配置文件并减小将该限制的属性值。可以查看配置文件文
档怎么设置 681(1 属性。
接收消息
上面就是消息生产者。消费者从 获取消息,和只发送一次消息的生产者不同,消费者会
一直等待接收消息并将接收的消息打印出来。
! 和 * 基
本需要引用同样的类:
import
! !!+!,;
import! !!;
import! !-;
import! !&6;
新引用的类 &6 是用来接收从服务器发送来的消息。
和 * 一样,要打开连接、创建消息通道、声明队列,从声明的队列中接收消息。请注意,生产
者的队列必须和消费者的队列一致。
publicclassRecv{
privatenalstatic*&/0/0120=3-3;
publicstaticvoidmain(*&[]&)
throws..'405!,
.&.'05!{
!+!,(!,=new!+!,();
(!,.66(3!-63);
!!!=(!,.7!();
-!-=!!.!-();
!-. 9!(/0/0120,false,false,false,null);
*,6..(3<"=&(66&6C566CDE3);
...
}
}
注意在这里也声明了队列。因为消费者可能在生产者之前启动,但必须确保消费者在尝试接收消息
时队列就存在。
通知服务器把队列中的消息发送给我们。由于服务器以异步的方式发送消息,所以我们需要提供一
个回调对象,当消息发送过来它就会通知我们。&6 就是这个回调。
&6!6=new&6(!-);
!-.6!6(/0/0120,true,!6);
while(true){
&6.9,,=!6.59,();
*&66&=new*&(,.&;,());
*,6..(3<5=!>3+66&+3>3);
}
&659,$)方法会阻塞直到下一条消息从服务器发送过来。
以上就是完整的 Recv.java 代码。
组合代码
同时编译这 个类,需要将 ! 放到类路径下:
!! !*!
运行上面两个程序需要将 ! 等依赖拷贝到类路径下。在终端上运行生产者:
!.!6@.!6!@@. !*
再运行消费者:
!.!6@.!6!@@. !!
在 776 环境下,使用冒号而不是分号来分隔类路径下的 包。
消费者打印从 接收的消息。消费者将一直运行,等待接收消息$使用 停止),所以
请从另一个终端上运行生产者。
使用 !61 6 命令检查队列。
F例子结束。
接下来请看教程 创建一个简单的工作队列。
提示
为了方便可以用环境变量代理类路径:
5=..!6--@...!6-!-@.@.. -!.
-!*
在 776 中:
>6=.?!6--@..?!6-!-@.@.? -!.
>-!GG*
2 工作队列
剩余29页未读,继续阅读
javaRoger
- 粉丝: 165
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功