消息队列

消息队列为何如此重要?

大家好,我是【架构摆渡人】,一只十年的程序猿。这是消息队列的第一篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友。 不知道大家平时是否有使用过Queue相关的类,比如ArrayBlockingQueue,DelayQueue等队列。如果你说你平时写业务代码都没 ... »

MQ系列:消息中间件执行原理

1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可 ... »

基于long pull实现简易的消息系统参考

我们都用过消息中间件,它的作用自不必多说。但对于消费者却一直有一些权衡,就是使用push,还是pull模式的问题,这当然是各有优劣。当然,这并不是本文想讨论的问题。我们想在不使用长连接的情意下,如何实现实时的消息消费,而不至于让server端压力过大。大体上来说,这是一种主动拉取pull的方式。具体 ... »

从事件总线和消息队列说起

系列目录 Chuye.Kafka: 从事件总线和消息队列说起 Chuye.Kafka: 清晰精练的 .Net driver for Apache Kafka 协议部分: TopicMetadata [ »

tiancai

Redis 中使用 list,streams,pub/sub 几种方式实现消息队列

使用 Redis 实现消息队列 基于List的消息队列 分析下源码实现 基于 Streams 的消息队列 分析下源码实现 stream 的结构 streamCG 消费者组 streamConsumer 消费者结构 发布订阅 普通的订阅 基于模式(pattern)的发布/订阅 看下源码实现 总结 参考 ... »

ricklz redis

消息队列的原理及选型

什么是消息队列 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。 什么时候需要消息队列 异步处理:例如短信通知、终端状态推送、App推送、用户注册等 有些业务不 »

peteremperor

Rabbitmq消息队列(四) 发布订阅

1、简介   在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者,在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers)。这种模式被称为“发布/订阅”。   2、交换机Exchanges   RabbitMQ消息模型的核心理念是:发布者(producer)只需要把消息发送给一个交换机(exchange)。交换机一边从发布者方接收消息,一边把消息 »

RabbitMQ 延时消息队列

一、简述 二、示例demo 单个延迟队列 多个延迟队列    一、简述 延时消息在日常随处可见: 1、订单创建10min之后不发起支付,自动取消。 2、30min定时推送一次邮件信息。 最常用到方式为定时任务轮训,数据量小的时候使用没什么问题 而当有千万甚至上亿的数据量时就会出现数据读取的瓶颈,此时全表扫面进行处理一定是下下策。但是也有比较讨巧的方式,分享公司内部订单拆分的例子: 由于线上 »

2015年12月10日 spring初级知识讲解(三)Spring消息之activeMQ消息队列

JMS消息 一、下载ActiveMQ并安装 地址:http://activemq.apache.org/ 最新版本:5.13.0 下载完后解压缩到本地硬盘中,解压目录中activemq-core-5.13.0.jar,这就是ActiveMQ提供给我们的API。 在bin目录中,找到用于启动ActiveMQ的脚本,运行脚本后ActiveMQ就准备好了,可以使用它进行消息代理。 访问http://12 »

Netty构建分布式消息队列实现原理浅析

  在本人的上一篇博客文章:Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇 中,重点向大家介绍了AvatarMQ主要构成模块以及目前存在的优缺点。最后以一个生产者、消费者传递消息的例子,具体演示了AvatarMQ所具备的基本消息路由功能。而本文的写作目的,是想从开发、设计的角度,简单的对如何使用Netty,构建分布式消息队列背后的技术细节、原理,进行一下简单的分析和说明。   首 »

Linux进程间通信-消息队列(mqueue)

前面两篇文章分解介绍了匿名管道和命名管道方式的进程间通信,本文将介绍Linux消息队列(posix)的通信机制和特点。 1、消息队列 消息队列的实现分为两种,一种为System V的消息队列,一种是Posix消息队列;这篇文章将主要围绕Posix消息队列介绍; 消息队列可以认为是一个消息链表,某个进程往一个消息队列中写入消息之前,不需要另外某个进程在该队列上等待消息的达到,这一点与管道和FIFO相 »

消息队列之 RabbitMQ

https://www.jianshu.com/p/79ca08116d57 https://blog.csdn.net/qq_35387940/article/details/100514134   安装过程:https://www.cnblogs.com/saryli/p/9729591.html »

去哪儿网消息队列设计与实现

https://www.infoq.cn/article/b4VPvP3m8DA-PM7ZqMGZ 去哪儿网近日在GitHub上开源了其内部广泛使用的消息队列 (内部代号 QMQ),本文从去哪儿网使用消息队列所碰到的各种问题出发探讨去哪儿网消息队列的设计与实现。 背景 2012 年,随着公司业务的快速增长,公司当时的单体应用架构很难满足业务快速增长的要求,和其他很多公司一样,去哪儿网也开始了服务化 »

用system v消息队列实现回射客户/服务器程序

客户端程序 #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<string.h> #include<stdlib.h> #include<stdio.h> #include<errno.h> #include&amp »

消息队列中数据丢失了怎么办

1、面试题 如何保证消息的可靠性传输(如何处理消息丢失的问题)? 2、面试官心里分析 这个是肯定的,用mq有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是刚才说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。 如果说你这个是用mq来传递非常核心的消息,比如说计费,扣费的一些消息,因为我以前设计和研发过一个公司非常核心的广告平台,计费系统,计费系统是很重 »

Linux IPC实践(6) --System V消息队列(3)

消息队列综合案例 消息队列实现回射客户/服务器  server进程接收时, 指定msgtyp为0, 从队首不断接收消息 server进程发送时, 将mtype指定为接收到的client进程的pid   client进程发送的时候, mtype指定为自己进程的pid client进程接收时, 需要将msgtyp指定为自己进程的pid, 只接收消息类型为自己pid的消息; //server.cpp »

(转)RabbitMQ消息队列(一): Detailed Introduction 详细介绍

    RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2 »

基于消息队列(RabbitMQ)实现延迟任务

一、序言 延迟任务应用广泛,延迟任务典型应用场景有订单超时自动取消;支付回调重试。其中订单超时取消具有幂等性属性,无需考虑重复消费问题;支付回调重试需要考虑重复消费问题。 延迟任务具有如下特点:在未来的某个时间点执行;一般仅执行一次。 1、实现原理 生产者将带有延迟信息的消息发送到RabbitMQ交 ... »