消息队列
文章平均质量分 65
Ch3nnn
这个作者很懒,什么都没留下…
展开
-
简单易用的任务队列-beanstalkd
beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上。其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时。其具有简单、轻量、易用等特点,也支持对任务优先级、延时/超时重发等控制,同时还有众多语言版本的客户端支持,这些优点使得它成为各种需要队列系统场景的一种常见选择。转载 2024-03-05 17:22:05 · 184 阅读 · 0 评论 -
golang kafka异步生产者实现
先拉取这包go git github.com/Shopify/sarama生产者实现,基本注释的东西解释的听清楚的了,感兴趣的同学可以查看下注释,同步合异步的方式都基本实现了,本文主要介绍异步的方式。package kafkaimport ( "errors" "fmt" "strings" "time" "github.com/Shopify/sarama")const ( kafkaTimeOut = time.Second * 5 // kafka生产者发原创 2022-05-18 11:37:00 · 1353 阅读 · 0 评论 -
RabbitMQ 模型和死信队列
RabbitMQ 模型RabbitMQ 是一个生产者/消费者模型,生产者生产消息到队列中,而消费者从队列中拿消息进行消费,两者并不直接交互。我们首先来看看 RabbitMQ 的模型结构在图中,我们可以看到,整个结构包括:生产者 Producer、交换机 Exchange、队列 Queue,以及消费者 Consumer。其中,生产者和消费者与 MQ 连接时会创建 TCP 连接和信道,生...原创 2019-12-26 18:15:59 · 401 阅读 · 0 评论 -
pika/RabbitMQ死循环-延长ACK时间中处理长时间运行的任务/pika.exceptions.ConnectionClosed错误
一、实践场景一个消息处理可能需要10-20分钟,当时没有响应消息,导致消费者与服务器断开连接。最后导致 pika.exceptions.ConnectionClosed 错误二、应用背景要将RabbitMQ中的任务取出并执行,为防止任务执行期间出错,设置NO_ACK=FALSE标志,这样、一旦任务没有应答的话,相应的任务就会被RabbitMQ自动Re-Queue,避免丢失任务。然而、由...原创 2019-12-26 14:28:18 · 3363 阅读 · 0 评论 -
Python&Rabbitmq--持久化
RabbitMQ提供了多种途径的消息持久化保证:Exchange持久化、Queue持久化及Message的持久化等。以保证RabbitMQ在重启或Crash等异常情况下,消息不会丢失。RabbitMQ提供了简单的参数配置来实现持久化操作。Queue持久化:队列是我们使用RabbitMQ进行数据传输的最多使用的方式,是进行点对点消息传递使用最多的方式。队列的持久化是通过durable=tr...原创 2019-10-10 11:53:14 · 656 阅读 · 0 评论 -
RabbitMQ:快速入门-相关概念
RabbitMQ是一个消息代理,事实上,它接收生产者产生的消息,然后将消息传递给消费者。在这个过程中,它可以路由,可以缓冲,或者更具你设定的规则来将消息持久化。RabbitMQ和消息传输过程中一般会用一些术语:生产者(Producing):意思无非是指发送消息的那一端,如果一个程序发送消息,那么它就将被称为生产者,这里用大写的P来表示。队列(queue):相当于邮箱的名...原创 2019-10-09 19:48:29 · 126 阅读 · 0 评论 -
[官方文档]学习使用Python&Rabbitmq
快速入门hello wordsend.py#!/usr/bin/env pythonimport pikaconnection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost'))channel = connection.channel()channel.queue_dec...原创 2019-10-09 19:22:33 · 382 阅读 · 0 评论 -
RabbitMQ 实战指南-学习笔记4
集群监控RabbitMQ 扩展的 RabbitMQ Management 插件 就能提供一定的监控功能,Web 管理界面提供了很多的统计值信息 : 如发送速度、 确认速度、消费速度、消息总数、磁盘读写速度、句柄数 、 Socket 连接数、 Connection 数、 Channel 数、内存信息等通过 HTTPAPI 接口提供监控数据RabbitMQ Management 插件不仅提...原创 2019-10-07 00:22:59 · 280 阅读 · 0 评论 -
RabbitMQ 实战指南-学习笔记3
优先级队列优先级队列 , 被消费的特权。顾名思义,具有高优先级的队列具有高的优先权,优先级高的消息具备优先可以通过设置队列的 x -max-priority 参数来实现默认最低为 0 ,最高为队列设置的最大优先级。优先 级高的消息可以被优先消费,这个也是有前提的 : 如果在消费者的消费速度大于生产者的速度且 Broker 中没有消息堆积的情况下 , 对发送的消息设置优先级也就没有什么实...原创 2019-10-06 23:44:31 · 239 阅读 · 0 评论 -
RabbitMQ 实战指南-学习笔记2
消费端的确认与拒绝为了保证消息从队列可靠地达到消费者, RabbitMQ 提供了消息确认机制(message acknowledgement) 。消费者在订阅队列时,可以指定 autoAck 参数当 autoAck 等于 false 时, RabbitMQ 会等待消费者显式地回复确认信号后才从内存(或者磁盘)中移去消息(实质上 是先打上删除标记,之后再删除) 。当 autoAck 等于 ...原创 2019-10-03 19:05:51 · 285 阅读 · 0 评论 -
rabbitmq中的Connection 和 Channel
无论是生产 者还是消费者,都需要和 RabbitMQ Broker 建立连接,这个连接就是一条 TCP 连接,也就是 Connection。 一旦 TCP 连接建立起来,客户端紧接着可以创建一个 AMQP 信道 (Channel) ,每 个信道都会被指派一个唯一 的 D 。信道是建立在 Connection 之上的虚拟连接, RabbitMQ 处理 的每条 AMQP 指令都是通过信道完成的。...原创 2019-10-03 11:03:53 · 1590 阅读 · 1 评论 -
RabbitMQ 实战指南-学习笔记1
什么是消息中间件消息 (Message) 是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、 JSON 等,也可以很复杂,比如内嵌对象。消息队列中间件 (Message Queue Middleware ,简称为 MQ) 是指利用高效可靠的消息传递 机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传 递和消息排队模型,它可以在分布式环境下扩展进程间...原创 2019-10-02 14:06:59 · 906 阅读 · 0 评论