没有合适的资源?快使用搜索试试~ 我知道了~
RabbitMQ开发中文文档

温馨提示
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页未读,继续阅读

小凡致心
- 粉丝: 286
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- zino-Rust资源
- vue-element-plus-admin-Typescript资源
- AJ-Captcha-Go资源
- swoole-src-PHP资源
- fly-barrage 弹幕库-JavaScript资源
- Yearning-SQL资源
- Demo-计算机二级资源
- Mathematical-modeling-information-美赛资源
- CloudEon-大数据资源
- PyQt6-codes-人工智能大模型实战应用资源
- 逐飞科技基于英飞凌TC264的智能车BLDC开源项目-大学生程序设计竞赛资源
- aetherupload-laravel-Linux高并发服务器开发项目资源
- VSCode-Vscode配置c / c++环境资源
- Smoke-Detect-by-YoloV5-yolov8数据集资源
- xASM-汇编语言资源
- Go Web编程实战派源码-C语言资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
- 3
- 4
前往页