rabbitmq学习笔记之客户端

本文介绍了如何连接RabbitMQ,包括设置参数连接和使用URI连接两种方式。接着详细讲解了四种交换机类型:direct、topic、fanout和headers,并展示了交换机的声明方法。同时,阐述了队列声明的参数及其注意事项,如持久化、排他性和自动删除。此外,还讨论了队列与交换机的绑定和解绑操作。
摘要由CSDN通过智能技术生成

一 连接rabbitmq的两种方式

1.设置给定参数连接

ConnectionFactory factory = new ConnectionFactory(); 
factory.setUsername(USERNAME); 
factory.setPassword(PASSWORD); 
factory.setVirtualHost(virtualHost) ; 
factory.setHost(IP ADDRESS); 
factory . setPort(PORT) ; 
Connection conn = factory.newConnection();

2.使用uri进行连接

factory.setUri( " amqp:lluserName : password@ipAddress:portNumber/virtualHost");

 

二 交换机的类型

bidingkey:队列与交换机绑定的时候指定

routingkey:客户端发送消息的时候指定

通常,可以认为bidingkey与routingkey 一致

direct (routingkey与bindingkey完全匹配的队列中)

topic(把消息路由到routingkey与bindingkey“通配符”匹配的队列中)

fanout(广播到所有与该交换机绑定的队列中)

headers(根据发送消息的header属性来匹配,比较少用)

 

三 交换机声明

1.常用声明

Exchange . DeclareOk exchangeDeclare(String exchange , 
String type , boolean durable , 
boolean autoDelete , boolean internal, 
Map<String, Object> arguments) throws IOException ;

String exchange -> 交换机的名称

String type ->交换机的类型

boolean durable->是否持久化

boolean autoDelete->是否自动删除

条件:有绑定过队列或者其他交换机,当所有队列和交换机都解绑时,自动删除

boolean internal->是否内部交换机

说明:无法直接连接到交换机,只能通过其他交换机转发的方式,获取到消息

Map<String, Object> arguments ->其他参数(待补充)

2.不阻塞声明exchangeDeclareNowait不等待rabbitmq返回是否创建成功

3.交换机删除 

  a.exchangeDelete(String exchange) b.exchangeDeleteNowait(String exchange,boolean ifUnused)

  c.exchangeDelete(String exchange,boolean ifUnused)

四.队列声明

 queueDeclare (String queue , boolean durable , boolean exclusive , 
boolean autoDelete , Map<String Object> arguments) throws IOException;

 

String queue->队列名称

boolean durable->是否持久化

boolean exclusive->排他队列

说明:1.对其他connection不可见;2.其他链接不能再创建同名队列;3.链接关闭或者客户端退出的时候,删除(无论是否设置持久化)

boolean autoDelete->是否自动删除

说明:条件:1有被消费者连接过;2所有消费者都断开

argurnents:其他参数

注意:消费端创建队列的前提是,没有订阅信道上的队列,否则需要解绑,设置模式为“传输”,然后创建队列

 

不阻塞声明 queueDeclareNoWait

默认创建 queueDeclare() 

 创建一个由 RabbitMQ 命名的名称,这种队列也称之为匿名队列、排他的、自动删除的、非持久化的队列。

 

五 交换机与队列绑定

 绑定:queueBind(String queue , String exchange , String routingKey, Map<String, Object> arguments)

 解绑:queueUnbind (String queue , String exchange , String routingKey)

队列名  交换机名 路由键  绑定参数???

有Nowait方法

六 交换机绑定

类似5 使用  exchangeBind(String destination , String source , String routingKey) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值