昨天是摸鱼的一天,今天争取把视频看完回到springboot的学习中去。

连接-- 信道 --路由键–交换器
记录一下对几个概念的理解:由于初学,实际上我把rabbitMQ当成数据库去看也没事,
至少他能存放数据吧。
连接:类似数据库连接池
信道:类似数据库连接,不过有4种类型的的信道
路由键:类似表名
交换器:信道的类型,关于路由键的匹配规则

用String为例
生产者:负责新建信息 String str=new String()
消费者:负责打印信息 sout(str)
业务需要不是所有东西都打印的,有时候需要equals()有时候like ‘%XXX%’
根据不同的需要有4种默认的匹配叫做交换器
Direct ===equals
fanout ===like’%’
路由键规则 string.string.string
topic === { 把路由键以 . 分隔
“*” 匹配一段字符
“#“ 匹配多个字符
}与数据库like ‘%‘ ’_’类似 一个是单个字符,一个是一段字符。
headers 和direct类似但是不推荐使用

一个连接可以有多个信道
一个信道可以有多个路由键
一个信道只有一种交换器类型

生产者生产路由键 投递到交换器,交换器根据类型和队列绑定的路由键,把消息传递给队列,这里有可能有消息重复,队列最后把消息传递给队列的消费者,这里不会重复。

rabbitMQ第三天

失败通知:

1。channel.basicPublish(EXCHANGE_NAME,routekey,true,null,message.getBytes());
参数mandatory=true
2.新增回调函数
rabbitMQ第三天

发送方确认

// 启用发送者确认模式
rabbitMQ第三天
channel.confirmSelect();
1。单个确认
rabbitMQ第三天
2。批量确认
rabbitMQ第三天
批量如果有错误
rabbitMQ第三天
3。异步监听
rabbitMQ第三天
deliveryTag 序号
multple 是否批量

备用交换器

rabbitMQ第三天
alternate-exchange 固定格式
BAK_EXCHANGE_NAME 自定义命名

期间报了个错
ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange ‘main-exchange’ in vhost ‘zzhedu’, class-id=50, method-id=20)
但是还没找到原因自己好了,也无法重现
rabbitMQ第三天

消费者

rabbitMQ第三天
消费者拉取
rabbitMQ第三天
推送
1。QOS
rabbitMQ第三天

消息的拒绝

rabbitMQ第三天
reject 单条
nack 多条
参数requeue 是否重新投递,是:还原到刚生产,否:丢弃
参数multiple 是否批量拒绝

死信交换器DLX

消息被拒绝 ,消息过期,队列超出
rabbitMQ第三天

rabbitMQ第三天
2019年12月2日21:00:28 今天结束,明天视频要讲与spring集成,那我可以回到springboot中去了。

相关文章:

猜你喜欢
  • 2021-12-12
  • 2021-08-11
  • 2021-08-29
  • 2021-06-16
相关资源
相似解决方案