Rocket 火箭 MQ的作用:同步转异步(异步解耦)。 难点:如何确保消息一定被消费,而且仅消费一次。 1、消息架构:生产者、服务器、消费者、路由发现。 2、消息顺序:严格按照消息到达服务器的顺序进行消费。 3、消息过滤: a、服务端过滤 b、消费端过滤。 缺点:无用的消息也传输到消费端。优点:可 ...
分类:
其他好文 时间:
2018-12-23 12:44:40
阅读次数:
128
一 、RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件,消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者、消息队 ...
分类:
编程语言 时间:
2018-12-23 11:10:37
阅读次数:
201
1 生产者消费者模式概述 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理, 直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生 ...
分类:
编程语言 时间:
2018-12-22 23:27:06
阅读次数:
286
支持生产阻塞的线程池, 使用了阻塞生产者的方式. 把队列设为有限队列.队列满了,调用构造时传入的RejectedExecutionHandler去拒绝任务的处理 RejectedExecutionHandler中继续往有界队列中put(阻塞)来添加元素. http://ifeve.com/block ...
分类:
编程语言 时间:
2018-12-22 13:50:45
阅读次数:
177
理解 Continuation (2012-08-26 10:39:34) 终于,我也不能免俗地要来谈谈这几个 Schemer 的必谈话题(顺便山寨了一个标题)。 Scheme 是一门神奇的编程语言,它不仅是世界上第一个完整支持闭包(closure)的语言,也是世界上第一个提供 continuati ...
分类:
其他好文 时间:
2018-12-21 15:25:00
阅读次数:
160
介绍 MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统 系 ...
分类:
其他好文 时间:
2018-12-20 14:15:39
阅读次数:
247
前面一篇文章《wait、notify应用场景(生产者-消费者模式)》是一种生产者消费者模式实现,今晚这是Lock方式实现,下面是源码: 生产者代码: 消费者代码: 测试代码: ReentrantLock 公平锁和非公平锁 非公平锁:获取锁的方式是抢占式的,随机的。默认ReentrantLock()是 ...
分类:
其他好文 时间:
2018-12-19 22:59:45
阅读次数:
182
python并发编程之多进程1 互斥锁与进程间的通信 python并发编程之多进程1 互斥锁与进程间的通信 python并发编程之多进程1 互斥锁与进程间的通信 python并发编程之多进程1 互斥锁与进程间的通信 一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的 ...
分类:
编程语言 时间:
2018-12-19 21:03:02
阅读次数:
205
关于循环缓冲区(Ring Buffer)的概念,其实来自于Linux内核(Maybe),是为解决某些特殊情况下的竞争问题提供了一种免锁的方法。这种特殊的情况就是当生产者和消费者都只有一个,而在其它情况下使用它也是必须要加锁的。对应在Linux内核中有对它的定义: struct kfifo { uns ...
分类:
其他好文 时间:
2018-12-19 17:53:56
阅读次数:
146
一、添加依赖 二、添加配置 三、生产者和消费者 Producer Consumer Controller 四、结果 github地址 ...
分类:
编程语言 时间:
2018-12-19 17:05:58
阅读次数:
141