交
换
器
和
队
列
是
A
M
Q
P
中
h i g h
也
v e l
层
面
的
构
建
模
块
,
应
用
程
序
需
确
保
在
使
用
它
们
的
时
候
就
已
经
存
在
了
,
在
使
用
之
前
需
要
先
声
明
C
d e c l a r e
)
它
们
。
代
码
清
单
3
- 6
演
示
了
如
何
声
明
一
个
交
换
器
和
队
列
:
代
码
清
单
3 - 6
channel.exchangeDeclare(exchangeName , “direct” , true) ;
String queueName = channel . queueDeclare() .get Queue( );
channel . queueBind (queueName , exchangeName , routingKey);
上
面
创
建
了
一
个
久
化
的
、
非
自
动
删
除
的
、
绑
定
类
型
为
d i r e c t
的
交
换
器
,
同
时
也
创
建
了
一
个
非
持
久
化
的
、
排
他
的
、
自
动
删
除
的
队
列
(
此
队
列
的
名
称
由
R a b b i t M Q
自
动
生
成
)
。
这
里
的
交
换
器
和
队
列
也
都
没
有
设
置
特
殊
的
参
数
。
上
面
的
代
码
也
展
示
了
如
何
使
用
路
由
键
将
队
列
和
交
换
器
绑
定
起
来
。
上
面
声
明
的
队
列
具
备
如
下
特
性
:
只
对
当
前
应
用
中
同
一
个
C
o
n
n
e
c
t
i
o
n
层
面
可
用
,
同
一
个
C
o
n
n
e
c
t
i
o
n
的
不
同
C
h
a
n
n
e
l
可
共
用
,
并
且
也
会
在
应
用
连
接
断
开
时
自
动
删
除
。
如
果
要
在
应
用
中
共
享
一
个
队
列
,
可
以
做
如
下
声
明
,
如
代
码
清
单
3 - 7
所
示
。
代
码
清
单
3 - 7
channel .exchangeDe clare (exchangeName , " direct" , true) ;
channel . queueDeclare(queueName , true , false , false , null);
channel . queueBind(queueName , exchangeName , routingKey) ;
这
里
的
队
列
被
声
明
为
持
久
化
的
、
非
排
他
的
、
非
自
动
删
除
的
,
而
且
也
被
分
配
另
一
个
确
定
的
己
知
的
名
称
(
由
客
户
端
分
配
而
非
R
a
b
b
i
t
M
Q
自
动
生
成
)
。
注
意
:
C
h
a
n
n
e
l
的
A
P
I
方
法
都
是
可
以
重
载
的
,
比
如
e
x
c
h
a
n
g
e
D
e
c
l
a
r
e
、
q
u
e
u
e
D
e
c
l
a
r
e
o