在第二篇文章中介绍了如何利用工作队列将耗时任务分发到多个消费者工作程序中。 考虑下另一种情况:如果需要在一个远程机器上执行一个函数然后等待它的返回结果应该怎样?这个过程称之为远程过程调用(RPC:Remote Procedure Call)…
在第二篇文章中介绍了如何利用工作队列将耗时任务分发到多个消费者工作程序中。 考虑下另一种情况:如果需要在一个远程机器上执行一个函数然后等待它的返回结果应该怎样?这个过程称之为远程过程调用(RPC:Remote Procedure Call)…
在上一篇文章中,我们对之前的日志系统进行了改进,使用direct类型的exchange替代了只能广播消息的fanout类型,让日志系统能够有选择性的接收处理消息。 虽然使用direct类型的exchange提升了日志系统的扩展性,但还是有它…
在上一篇文章中,我们实现了一个可以广播消息给多个接收者的日志系统。在本篇中,将介绍如何对消息进行过滤,从而只处理我们感兴趣的消息。如只把一些严重的错误信息写入磁盘,但对所有类型的消息都打印到屏幕。 Binding 前面例子中我们使用了如下绑…
在前一篇介绍中实现了一个工作队列,它假设队列中的每一个任务都只会被分发到一个工作者进行处理。在本篇中,我们尝试将同一个消息发送给多个消费者进行处理,这就是广为人知的发布/订阅模式。 本篇通过搭建一个日志系统来阐述发布/订阅模式,它包含两部分…
在上一篇介绍中我们实现了从消息产生程序发送简单消息到命名队列的过程,本篇将实现一个将耗时任务分发到多个消费者程序的工作队列。 工作队列的主要思想是避免对资源密集型任务处理时的等待,而是先将任务压入队列,后期再进行计划处理。我们将任务封装成消…
本系列教程主要介绍rabbitMq,主要分6个部分来帮助大家入门掌握rabbitMq. rabbitMq学习笔记 (1) 基本概念 rabbitMq学习笔记 (2) 工作队列 rabbitMq学习笔记 (3) 发布/订阅模式 rabbitM…
前言 在前面的文章中,已经介绍了Redis的几种高可用技术:持久化、主从复制和哨兵,但这些方案仍有不足,其中最主要的问题是存储能力受单机限制,以及无法实现写操作的负载均衡。 Redis集群解决了上述问题,实现了较为完善的高可用方案。本文将详…
前言 在 深入学习Redis(3):主从复制 中曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自…
前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化。 在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到…
前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持…