异步队列
文章平均质量分 56
梁萌
认真是一种态度
展开
-
分布式异步队列学习总结10(消息确认)
rabbitmq服务在运行时,如何确保生产者发送的消息一定能够进入到消息队列中,这时候就需要引入消息确认机制。消息确认机制就是在rabbitmq接收到消息时对生产者进行一个反馈,告诉生产者,你发送给我的消息,我已经收到;同理,消费者也有相关的消息确认机制,确保rabbitmq队列中的消息能够被消费者消费。消息确认机制流程图如下所示:第一种情况,生产者接收来自rabbitmq的反馈。确保生产者发送的消息有被接收到。生产端消息确认的两种模式:1.Confirm模式应答模式,生产.原创 2021-09-05 20:21:45 · 368 阅读 · 0 评论 -
分布式异步队列学习总结9(消息持久化)
消息持久化就是在rabbitmq服务出现异常时(比如服务器宕机、rabbitmq服务停止等),已经在队列中的数据不会丢失。以文件的形式存在硬盘中。下面通过示例演示整个过程。在生产者的服务中加入这段代码就可以实现数据持久化存储。初始队列中的数据信息:生成一个带有持久化存储的队列SeckillProducerMessage,并往队列中添加消息。可以看到这个队列在文件夹中的信息。msg_store_persistent文件夹是用于存放持久消息的,现在里面...原创 2021-09-04 20:47:28 · 328 阅读 · 0 评论 -
分布式异步队列学习总结8(交换机HeaderExchange)
Header交换机不依赖于routing key和binding key,而是根据发送消息内容的headers参数来确定消息发送到哪一个队列中,供消费者消费。通过一个示例说明此类交换机的用法,项目结构:代码实例:生产者using RabbitMQ.Client;using System;using System.Collections.Generic;using System.Text;namespace AspNetCore.RabbitMQ.MessagePr..原创 2021-09-04 17:40:55 · 212 阅读 · 0 评论 -
分布式异步队列学习总结7(交换机TopicExchange)
Topic类型交换机跟Direct类型交换机相比,key多了一个匹配模式,会根据路由规则把消息分配到不同的队列中,供消费者消费。通过一个示例说明此类交换机的用法,项目结构:代码实例:生产者using RabbitMQ.Client;using System;using System.Text;namespace AspNetCore.RabbitMQ.MessageProducer.MessageProducer{ /// <summary>..原创 2021-09-04 16:46:58 · 216 阅读 · 0 评论 -
分布式异步队列学习总结6(交换机FanoutExchange)
Fanout类型交换机跟Direct类型交换机相比,没有了key的概念,会把所有发送到该交换机的消息转发到所有与它绑定的队列中。应用场景:发布订阅(观察者模式)应用案例:总公司下面有2个分公司,总公司要向2个分公司同时发送通知信息。总公司在这里的角色就是生产者(发布者),两个分公司就是消费者(订阅者)。项目结构:代码实例:生产者using RabbitMQ.Client;using System;using System.Text;using Sys...原创 2021-08-29 17:39:51 · 354 阅读 · 0 评论 -
分布式异步队列学习总结5(交换机DirectExchange)
在整个rabbitmq服务中,生产者发送的所有消息都要先经过交换机(exchange),然后再到队列(queue)中。在往队列写入消息时,如果需要写入不同的策略,只需要修改交换机的转发策略即可(为交换机指定消息写入队列的策略)。rabbitmq中交换机的类型:首先看第一种类型DirectExchange生产者在往交换机发送消息时,会指定一个key,如果key值和交换机与队列之间绑定的key一致,则消息会通过交换机发送到对应的队列中。应用实例:通过一个写日志的实例...原创 2021-08-29 16:55:18 · 363 阅读 · 0 评论 -
分布式异步队列学习总结4(生产者和消费者)
生产者向RabbitMQ服务发送消息,消费者从RabbitMQ服务中获取消息。单生产者单消费者模式使用程序演示单生产者和单消费者模型:项目结构为两个.net Core 控制台程序应用程序程序需要添加引用 RabbitMQ.ClientAspNetCore.RabbitMQ.MessageConsumer_01.MessageConsumer:using RabbitMQ.Client;using RabbitMQ.Client.Events;using S.原创 2021-08-28 21:23:45 · 581 阅读 · 0 评论 -
分布式异步队列学习总结3(RabbitMQ安装)
RabbitMQ依赖Erlang语言运行环境,首先搭建运行环境。Erlang运行时环境安装:1.官方下载:https://www.erlang.org/downloads2.百度网盘下载:https://pan.baidu.com/share/init?surl=eHRa6BZZ3UN-Cj4Of8sASA提取码:OU3K推荐使用百度网盘下载,速度快些。安装教程Erlang:https://blog.csdn.net/g6256613/article/details/80191402原创 2021-08-15 22:31:47 · 113 阅读 · 0 评论 -
分布式异步队列学习总结2(RabbitMQ理论)
RabbitMQ是一个在AMQP(高级消息队列协议)基础上完成的由Erlang语言开发,可复用的企业消息系统,是当前主流的消息中间件之一。RabbitMQ结构图:图中的Publisher是生产者,consumer是消费者,中间的是RabbitMQ服务。一个RabbitMQ服务,可以有多个Vhost(虚拟主机),每个虚拟主机相对独立。一个Vhost中可以有多个Exchange(路由)和多个Queue(队列)。RabbitMQ服务进程模型:AMQP(高级消息队列协议):..原创 2021-08-15 18:18:17 · 102 阅读 · 0 评论 -
分布式异步队列学习总结1(异步架构)
同步架构:这种架构模式在处理请求时,当请求来了直接处理,处理完成将结果返回给客户端。在结果没有返回给客户端之前,客户端处于同步阻塞等待状态。如果请求量非常大,数据库就会成为瓶颈。因为这个问题。异步架构:异步架构是客户端发出请求,业务还没有处理完,在Broker的地方,就给客户端返回结果,客户端不需要等待调用处理完成,可以继续进行自己后续的操作。参考文章:https://copyfuture.com/blogs-details/20190606165641606pu1wr61kr.原创 2021-08-15 17:28:14 · 965 阅读 · 0 评论