一.使用RabbitMQ的好处1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!2.异步,将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度3.削峰,并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常二、RabbitMQ中的broker是指什么?cluster又是指什么?broker是指一个或多个erlangnode
分类:
其他好文 时间:
2020-07-06 09:15:50
阅读次数:
88
队列 概念 队列:是限只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 遵循先进先出原则,简称FIFO 线性表 —> 用数组或是链表来实现。 抽象数据类型 队列也有类似线性表的各种操作,不同的是 插入数据只能在队尾进行 删除数据只能在队头进行 实际场景:银行叫号排队 数组模拟队列 思路分析 ...
分类:
其他好文 时间:
2020-07-06 01:02:49
阅读次数:
57
?# 栈与队列 栈 概念 栈:是限定仅在表尾进行插入和删除操作的线性表。 **栈顶(top):**允许插入和删除的一端,即表尾称为栈顶 栈底(bottom):表头称为栈底 栈是LIFO结构,后进先出。 与线性表相比,特殊之处在于 限制了线性表的插入和删除位置,始终在栈顶进行。 所以栈底是固定的,最先 ...
分类:
其他好文 时间:
2020-07-06 01:01:36
阅读次数:
62
1.单个线性表+位置指针: //栈 int stack[LEN],top=-1; //入栈 stack[++top]=x; //出栈 x=stack[top--];//队列int queue[LEN],front=0,last=0;//入队queue[last++]=x;front=(front+1 ...
分类:
其他好文 时间:
2020-07-05 23:26:40
阅读次数:
112
队列是一种基本的数据结构 基本概念 队列(Queue):具有一定操作约束的线性表 只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先进先出:First In First Out(FIFO) 抽象数据类型描述 类型名称:队列 数据对象集:一个有0个或多 ...
分类:
其他好文 时间:
2020-07-05 19:11:44
阅读次数:
64
1 消息队列的优势 1.1 异步 假设系统A需要直接调用系统B、C、D,其中,系统A是主要业务,B、C、D为非主要业务,系统A调用系统B的接口需要200ms,调用系统C的接口需要200ms,调用系统D的接口需要200ms,那么这次请求就需要600ms,如果加入一些其他的业务,执行时间可能会更长,多达 ...
分类:
其他好文 时间:
2020-07-05 17:32:28
阅读次数:
80
1、工作队列现在的程序只定义有一个生产者和一个消费者,如果说现在有一个生产者对应多个消费者呢?那就表示一个工作队列,而工作队列的最大特征在于:若干个消费者一起完成工作。 当启动了多个消费者之后,这些消费者会一起共同完成所发出的消息消费处理,这样的处理可以保证消息处理的速度更加的快速。但是千万要记住, ...
分类:
其他好文 时间:
2020-07-05 17:06:38
阅读次数:
63
# RabbitMQ 实战教程 ## 1.MQ引言 ### 1.1 什么是MQ `MQ`(Message Quene) : 翻译为 `消息队列`,通过典型的 `生产者`和`消费者`模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送 ...
分类:
其他好文 时间:
2020-07-05 15:39:22
阅读次数:
63
flower的启动 首先flower作为web页面来管理celery后台任务,和任务队列是隔离的,也就是flower的运行与否并不会影响到任务队列的真正执行,但是flower中可以通过API接口来管理celery中的任务执行。 在django工程目录下面(和manage.py文件在一个层级),具体的 ...
分类:
Web程序 时间:
2020-07-05 13:41:00
阅读次数:
79
栈 定义 栈是限定仅在表尾进行插入或删除操作的线性表。因此对栈来说,表尾端有其特殊含义,称为栈顶,表头端称为栈底。不含元素的空表称为空栈。栈顶实现元素的进出,栈的修改遵循后进先出的原则。因此,栈又称为**后进先出(last in first out)**的线性表(简称LIFO结构)。 表示及实现 栈 ...
分类:
编程语言 时间:
2020-07-05 13:22:58
阅读次数:
67