缘由,最近换了工作,而新的项目中使用了celery+rabbitmq来实现一个分布式任务队列系统,为了能够维护好这套系统,只能来学习一下这两个组件,顺便把学习笔记记录下来,留作以后回顾,当然如果碰巧能帮助到也在学习这两个组件的同学,那就更好了,关于celery的部分见这里。

这组笔记来源于《rabbitmq实战:高效部署分布式消息队列》

该章开篇首先介绍了为什么需要引入消息队列,通过一个简单的认证模块的例子来展示了引入消息队列之后实现了模块之间的解耦,方便扩展。

补充一下自己的想法:我认为这里举的这个认证模块的例子不太合适,因为认证模块是一个同步的模块,等待认证结果返回才能继续下来,但是引入消息队列之后会增加处理时间,还会出现消费者如果出了问题,就会导致消息阻塞,所以不如不用消息队列,个人想法,如果不对,还请指正。

1.1、消息队列的发展史

其实消息队列在1983年就已经有人提出了这种“信息总线”的思想,并付诸了实施,开发除了Teknekron,它刚开始后的客户都是金融行业,后来新闻行业也成了它的客户,因为新闻是典型的需要把消息分发给不同的客户的应用场景,然后IBM也开始研发自己的商业消息队列软件IBM MQ,但是这些都是商业软件,并非开源的,它们之间都是没有一个统一的标准的,这给用户带来了复杂性,于是后来就有许多企业连接制定了统一、开放的消息通信队列协议:AMQP,这也是这本书的主角rabbitmq的协议标准。

1.2、rabbitmq的发展史

这里介绍了rabbitmq创始人的经历,令我感到的奇怪的是,他们居然会上来就选择一个工具型的应用来进行创业,并且还成功了,这在中国是很少见的,至少现在还是很少的,更多的是应用层的创业的,其实这也是中国和国外IT的差距吧,看似繁荣的表面,其实基础软件依旧还是属于学习者。

2006年的时候rabbit technologies公司成立,这个家公司就是专门开发rabbitmq的。

其中介绍了对于开发语言的选型,为什么选择erlang,因为erlang本身是为了开发交换机而开发的语言,所以很适合rabbit,另外erlang实现分布式很方便(这个我还不太理解,没有使用过erlang)。

1.3、rabbitmq的优势

世面上这么多的消息队列软件:ActiveMQ、ZeroMQ、Kafka,那么rabbitmq和这些相比有什么优势呢?

rabbitmq是完全实现了qmap协议的、由于erlang,rabbitmq集群很方便实现、rabbitmq更稳定

1.4、安装rabbitmq

这个我建议直接查看rabbitmq的官网,介绍的很详细

第一章介绍学习完了,之前学习一个新的技术总是觉得看完了就ok了,即使写笔记也更像是“抄书”,觉得没有什么意思,但是现在想想总觉得还是希望能留下点什么,所以尽量坚持写写学习笔记,尽量把学会的东西转换为自己的语言,避免“抄书”。

rabbitmq实战:一、天降奇兵的更多相关文章

  1. rabbitMQ实战(一)---------使用pika库实现hello world

    rabbitMQ实战(一)---------使用pika库实现hello world 2016-05-18 23:29 本站整理 浏览(267)     pika是RabbitMQ团队编写的官方Pyt ...

  2. Java SpringBoot集成RabbitMq实战和总结

    目录 交换器.队列.绑定的声明 关于消息序列化 同一个队列多消费类型 注解将消息和消息头注入消费者方法 关于消费者确认 关于发送者确认模式 消费消息.死信队列和RetryTemplate RPC模式的 ...

  3. websocket+rabbitmq实战

    1. websocket+rabbitmq实战 1.1. 前言   接到的需求是后台定向给指定web登录用户推送消息,且可能同一账号会登录多个客户端都要接收到消息 1.2. 遇坑 基于springbo ...

  4. celery+RabbitMQ 实战记录2—工程化使用

    上篇文章中,已经介绍了celery和RabbitMQ的安装以及基本用法. 本文将从工程的角度介绍如何使用celery. 1.配置和启动RabbitMQ 请参考celery+RabbitMQ实战记录. ...

  5. RabbitMQ实战经验分享

    前言 最近在忙一个高考项目,看着系统顺利完成了这次高考,终于可以松口气了.看到那些即将参加高考的学生,也想起当年高三的自己. 下面分享下RabbitMQ实战经验,希望对大家有所帮助: 一.生产消息 关 ...

  6. 【RabbitMQ 实战指南】一 RabbitMQ 开发

    1.RabbitMQ 安装 RabbitMQ 的安装可以参考官方文档:https://www.rabbitmq.com/download.html 2.管理页面 rabbitmq-management ...

  7. 【RabbitMQ 实战指南】一 延迟队列

    1.什么是延迟队列 延迟队列中存储延迟消息,延迟消息是指当消息被发送到队列中不会立即消费,而是等待一段时间后再消费该消息. 延迟队列很多应用场景,一个典型的应用场景是订单未支付超时取消,用户下单之后3 ...

  8. RabbitMQ实战应用技巧

    1. RabbitMQ实战应用技巧 1.1. 前言 由于项目原因,之后会和RabbitMQ比较多的打交道,所以让我们来好好整理下RabbitMQ的应用实战技巧,尽量避免日后的采坑 1.2. 概述 Ra ...

  9. Spring Boot 集成 RabbitMQ 实战

    Spring Boot 集成 RabbitMQ 实战 特别说明: 本文主要参考了程序员 DD 的博客文章<Spring Boot中使用RabbitMQ>,在此向原作者表示感谢. Mac 上 ...

随机推荐

  1. Java-内存模型 synchronized 的内存语义

    synchronized 具有使每个线程依次排队操作共享变量的功能.这种同步机制效率很低,但 synchronized 是其它并发容器实现的基础. 一.锁对象及 synchronized 的使用 sy ...

  2. 单细胞数据整合方法 | Comprehensive Integration of Single-Cell Data

    操作代码:https://satijalab.org/seurat/ 依赖的算法 CCA CANONICAL CORRELATION ANALYSIS | R DATA ANALYSIS EXAMPL ...

  3. Linux下查看目录文件数和文件大小

    一.查看当前目录下文件个数 在linux下查看目录下有多少文件可以用:ls -l  命令查看,ls -lR 递归查看所有目录, 如果文件很多,则用wc命令 和 grep 命令进行过滤. wc命令显示输 ...

  4. spring源码的设计模式

    转:https://blog.csdn.net/huyang0304/article/details/82928900 接下来我们只介绍在Spring中常用的设计模式. 1.1.简单工厂模式(Fact ...

  5. shell关闭指定进程

    例如要关闭jupyter-notebook这个进程: ps -ef | grep jupyter-notebook | grep -v grep | cut -c 9-15 | xargs kill ...

  6. Wise Force Deleter 强制删除文件工具

    https://www.xitmi.com/3321.html   Wise Force Deleter v1.49 中文绿色版 强制删除文件工具

  7. 报错:ImportError: cannot import name "KafkaProducer" from "kafka"

    报错背景: 在Pycharm中安装完成kafka-python之后,我开始在代码中引入kafka的包. from kafka import KafkaProducer 但是引入之后报错 报错现象: 报 ...

  8. Swift编码总结5

    1.UIWindow属性: 1>.- (void)becomeKeyWindow;                               // override point for sub ...

  9. 如何用谷歌浏览器导出一个https网站的数字证书

    HTTPS加密是互联网安全建设的基础,百度.淘宝.天猫等越来越多互联网巨头启用全站HTTPS,也带动了更多网站加入HTTPS加密的行列.普通用户也逐渐明白HTTPS比HTTP更安全,访问网银.购物等重 ...

  10. C++使用fill初始化二维数组

    类似如下用法: fill(dis[0], dis[0]+maxn*maxn, INF); 因为 dis[0]才是dis的首元素 dis[0][0] 的地址.