应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

消息队列rabbitmq介绍

9768人阅读 2019/3/20 15:03 总访问:5182346 评论:1 收藏:1 手机
分类: 消息队列


消息队列的一般作用

   异步调用,延迟处理

   应用解耦

   流量消峰,处理高并发,秒杀等


   说白了,消息队列就是一方生产消息,一方消费消息而已。然后把生产方与消费方耦合度就会非常低,

   可以使用不同的平台不同的语言来处理,不同的模块可以放到不同的项目去处理。

   简直是逼格高、分布式系统、微服务架构中的必备


RabbitMq中的几个重要概念


   Channels:通道

   Exchanges:交换机

   Queues:队列


Exchanges:交换机


   交换机的类型主要分为:Direct, topic, fanout,headers



  fanout

  广播模式不验证routing key

  给交换机发送信息,会直接发送给关联到该交换机的队列

  这里的字符串不能设置null,要设置为空字符串不然要报错

  Fanout这种模式即使传了routing key交换机也不会理


  Direct  

   要求该消息与一个特定的路由键完全匹配,即使关联的时候使用星号也不能模糊匹配


  Topic类似模糊匹配

    可以让routekey模糊匹配,消息也能发送成功!!!

    这个其实还是挺有用的啊,比如日志的消息要分为很多种类型

    Info:普通信息

    Warning:警告

    Error:错误

    注意:和交换机关联的时候要加星号(*)!模糊匹配才能起作用


查看交换机与队列的关联信息


 点击你想看的交换机进去,然后点击Bindings



 就能看到和交换机关联的队列与关联的key等信息,还可以直接进去解绑操作




查看队列信息信息


直接在菜单上面的Queues点击即可查看



然后可以点击一个队列查看里边的具体信息


能看到消息的条数,还有随着时间显示的图表等

以及和交换机绑定信息

还能直接获取消息,查看消息



RabbitMq消息消费模式


  1:主动模式

      主动从队列中去拉取消息。

      优点:消费灵活,可以随时消费

 

  2:被动模式

      一旦有消息进来,马上触发消费

      优点:即时性好



RabbitMQ应答模式模式


 自动确认:

      获取消息后自动删除,更方便

 

 手动确认:

     获取消息后用户自动调用是否确认收到消息,然后在删除消息,可控性更强

     

     net core/net framework参考代码如下:

     

   首先自定应答设置成false:     noAck:fasle

  1. //开始接收消息(自动应答为false,获取消息后不会自动删除,自己控制消息是否删除)
  2. channel.BasicConsume("RRedis", noAck: false, consumer: custom);

   然后手动调用方法BasicAck完成应答

  1. //处理完成,告诉Broker可以服务端可以删除消息,分配新的消息过来
  2. channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);







欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

线程异步编程与消息队列区别想法

开线程也是异步,消息队列也是异步为什么还要用消息队列?因为开线程始终是在一个项目中,处理也需要这个项目或者这台电脑...

net core使用消息队列rabbitmq

使用NuGet下载rabbitmq客户端工具Install-Package RabbitMQ.Client -Version 3.6.5生产消息staticvoidMain(string[]args) ...

消息队列

## 消息队列- 消息队列: -- 就是一种订阅发布模式的实现- 主要的角色1. 消息的生产者2. 消息的消费者3. 消息队列- 作用:1...

消息队列rabbitmq)(入门)

前言常用的消息队列MSMQ:微软自带的消息队列,使用的人少,不开源rabbitMQ:开源,支持语言多,使用比较广泛,社区支持强roc...

消息队列(消息消费)

前言消息队列中几个重要角色交换机负责把消息放在队列当中队列存放消息路由键交换机通过路由键去找到对应的路由(多个队列...

​Windows下安装rabbitmq

跳过舞,祝大家新年快乐哇!1、下载安装erlang因为rabbitmq是基于erlang实现的所以需要先安装erlang打开网址https://www.er...

rabbitmq常用命令

rabbitmqctl environment:查询环境什么的例如这里可以看到rabbitmq的连接端口是5672,有时间我们想知道端口有没有改起什么...

修改rabbitmq的连接端口

rabbitmq的默认连接端口是5672,如果要修改的话,可以通过配置文件修改当然一般情况下都会遇到坑默认配置文件地址:安装目...

rabbitmq官网上六大版块之二(Direct类型交换机通过routingKey分类型输出)

其实rabbitmq,老师都说得差不多了,下面是老师的连接。http://www.tnblog.net/aojiancc2/article/UserCategory/134官网教...

rabbitmq六大版块之三(Fanout类型交换机相同数据多逼格处理)

Fanout类型交换机的特点是:同样的数据分发给每一个自己所绑定的队列,每个队列可以按照自己的需求对数据进行不同的处理【...

rabbitmq中Header类型交换机的处理(and与or的处理)

headers类型交换机是通过 muliple attributes 代替 routing key.x-match [all/any]all: 所有地方header头信息必须匹配any:...

springboot整合rabbitmq

Windows下安装RabbitMQ:http://www.tnblog.net/aojiancc2/article/details/232消息队列rabbitmq介绍:http://www.tnblog.n...

Docker 部署rabbitmq集群

Docker 部署RabbitMq集群[TOC] 镜像环境docker pull rabbitmq:3-management 镜像后面带management是带web管理界面...

rabbitmq 命令行运用

RabbitMq 命令行运用[TOC] RabbitMQ是一个开源的多协议消息传递代理。 描述 rabbitmqctl是用于管理RabbitMQ服务器节点...

rabbitmq 对配置文件的操作

RabbitMq 对配置文件的操作[TOC] 从UI界面中找到配置文件的位置 查看我们的配置文件 在这里我已经对原来的配置文件做了...