消息队列 首先做简单的引入。 MQ主要是用来: 解耦应用、 异步化消息 流量削峰填谷 目前使用的较多的有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。网上的资源对各种情况都有详细的解释,在此不做过多赘述。本文仅介绍如何使用Redis实现轻量级MQ的过 ...
分类:
其他好文 时间:
2020-07-01 11:03:49
阅读次数:
91
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等众所周知,消息队列在收发两端,主要是依靠业务代码,配合请求确认的机制,来保证消息不会丢失的。而在服务端,一般采用持久化和复制的方式来保证不丢消息。把消息复制到多个节点上,不仅可以解决丢消息的问题,还可以保证消息服务的高可用。即使某一个节点宕机了,还可以继续使用其他节点来收发消息。所以大部分生产系统,都会把消息队列配置成集群模式
分类:
其他好文 时间:
2020-07-01 09:56:57
阅读次数:
58
一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。利用redis这两种场景的消息队列都能够实现。 定义: 生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。 发布者订阅者模式:发 ...
分类:
其他好文 时间:
2020-06-30 17:09:14
阅读次数:
106
本文代码使用的是Spring Boot 2.1.1.RELEASE 版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version ...
分类:
编程语言 时间:
2020-06-30 13:00:18
阅读次数:
51
Redis的发布与订阅,有点类似于消息队列,发送者往频道发送消息,频道的订阅者接收消息。 1. 发布与订阅示例 首先,在本机开启第1个Redis客户端,执行如下命令订阅blog.redis频道: SUBSCRIBE "blog.redis" 然后,在本机开启第2个Redis客户端,执行相同的命令订阅 ...
分类:
其他好文 时间:
2020-06-30 10:44:54
阅读次数:
61
一、消息队列 RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。 1.1 什么是消息队列 MQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不 ...
分类:
编程语言 时间:
2020-06-29 11:54:48
阅读次数:
71
概念: 1>基于 C/S 架构的服务器基础架构集中化管理平台,通过管理端下发指令,客户端接受指令的方式进行操作,管理端称为 Master,客户端称为 Minion。2>具备配置管理、远程执行、监控等功能3>基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ【master和sl ...
分类:
其他好文 时间:
2020-06-29 09:38:41
阅读次数:
73
削去秒杀场景下的峰值写流量 而在秒杀场景下,高并发的写请求并不是持续的,也不是经常发生的,而只有在秒杀活动开始后的几秒或者十几秒时间内才会存在。为了应对这十几秒的瞬间写高峰,将秒杀请求暂存在消息队列中,然后业务服务器会响应用户“秒杀结果正在计算中”,释放了系统资源之后再处理其它用户的请求。 在后台启 ...
分类:
其他好文 时间:
2020-06-27 19:50:29
阅读次数:
118
##一、消费者消费原理 在实际生产过程中,每个topic都会对对应多个partitions,好处如下: 能够对 broker 上的数据进行分片有效减少了消息的容量从而提升 io 性能 为了提高消费端的消费能力,一般会通过多个consumer 去消费同一个 topic #####Q1. 在开启多个co ...
分类:
其他好文 时间:
2020-06-26 18:44:03
阅读次数:
62
##一、引入kafka pom三方配置 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.4.0</version> </dependency> ##二 ...
分类:
其他好文 时间:
2020-06-26 13:04:18
阅读次数:
54