1. 手写一个单例模式 2. 手写一个生产者消费者模式 3. 手写一个LRU算法的实现; 4. 手写快排 5. 手写堆排 6. 手写树的遍历(先序、中序、后序、层序) 7. 手写一个二分查找 #. 剑指OFFER #. LeetCode ...
分类:
其他好文 时间:
2019-09-11 12:06:41
阅读次数:
104
8. 实现基于事件的异步协作方式 前面讲了一些与请求/响应模式相关的技术。那么基于事件的异步通信呢? 8.1 技术选择 主要有两个部分需要考虑:微服务发布事件机制和消费者接收事件机制。 方法一:使用消息代理 传统上来说,像RabbitMQ这样的消息代理能够处理上述两个方面的问题。生产者(produc ...
分类:
其他好文 时间:
2019-09-10 23:48:18
阅读次数:
93
一.前言 任何消息队列都是万变不离其宗都是3部分,消息生产者(Producer)、消息消费者(Consumer)和服务载体(在Kafka中用Broker指代)。那么本篇主要讲解Producer端,会有适当的图解帮助理解底层原理。 一.开发应用 首先介绍一下开发应用,如何构建一个KafkaProduc ...
分类:
其他好文 时间:
2019-09-10 22:05:10
阅读次数:
115
1.pom文件 2.yml配置文件 3.消费者代码(手动确认) 4.生产者 ...
分类:
编程语言 时间:
2019-09-10 14:54:16
阅读次数:
299
生产者和消费者之间为什么隔着一个队列? 首先,生产者与消费者由于速度的不一致,所以需要一个空间用于缓冲。这可以将生产者与消费者解耦,生产者产出数据的时候,不需要把数据交到消费者手上才行,只要把数据丢入缓冲区就好。这样就可以各做各的。 为什么缓冲区是一个队列? 通常情况下,这个缓冲区的数据结构是一个有 ...
分类:
其他好文 时间:
2019-09-09 22:59:16
阅读次数:
146
Redis做消息队列的好处在于它的轻量级,高并发,延迟敏感,应用场景有 即时数据分析、秒杀计数器、缓存等 Redis做消息队列待解决的问题: 1、消息的可靠性: 没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理。生产者只管向队列中插入数据,不管消费者是否成功消费。 2、 ...
分类:
Web程序 时间:
2019-09-09 13:17:15
阅读次数:
248
消息队列的常见问题 1.消息丢失怎么办?(消息的可靠性传输) 消息的丢失可能会出现在三个地方: RabbitMQ消息中间件: (1)生产者弄丢数据 生产者将数据发送到RabbitMQ的时候,可能数据就在半路给搞丢了,因为网络啥的问题,都有可能。怎么解决? 事务:生产者发送数据之前开启RabbitMQ ...
分类:
其他好文 时间:
2019-09-08 22:46:14
阅读次数:
93
Reference: https://time.geekbang.org/column/article/112160 背景 生产环境中可以用生产者消费者模式来实现瞬时高并发的流量削峰,然而这样做虽然缓解了消费方的压力,但生产方则会因为瞬时高并发,而发生大量线程阻塞。面对这样的情况,有什么方式可以优化 ...
分类:
编程语言 时间:
2019-09-08 09:51:18
阅读次数:
119
锁和队列 1、锁multiprocessing-Lock 锁的应用场景:当多个进程需要操作同一个文件/数据的时候; 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。 为保证数据的安全性,多进程中只有去操作一些进程之间可以共享的数据资源的时候才需要进行加锁; 枷锁可以保证多个进程修 ...
分类:
其他好文 时间:
2019-09-07 17:11:56
阅读次数:
123