互联网 Java 工程师进阶知识完全扫盲
高并发架构
消息队列
为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
如何保证消息队列的高可用?
如何保证消息不被重复消费?(如何保证消息消费时的幂等性)
如何保证消息的可靠性传输?(如何处理消息丢失的问题)
如何保证消息的顺序性?
如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消...
查看全文 >>
Python爬虫从入门到放弃(二十)之 Scrapy分布式原理
关于Scrapy工作流程回顾
Scrapy单机架构
上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享爬取队列。
分布式架构
我将上图进行再次更改
这里重要的就是我的队列通过什么维护?这里一般我们通过Redis为维护,Redis,非关系型数据库,Key-Value形式存储,结构灵活。并且redis是内存中的数据...
查看全文 >>
tair 淘宝的分布式key/value存储系统
类redis,项目地址:http://tair.taobao.org/
或
http://code.taobao.org/p/tair/wiki/index/ 。
与redis类比,摘自互联网。
redis集群中,想借用缓存资源必须得指明redis服务器地址去要。这就增加了程序的维护复杂度。因为redis服务器很可能是需要频繁变动的。
所以人家淘宝就想啊,为什么不能像操作分布式数据库或者ha...
查看全文 >>
Redisson实现Redis分布式锁的N种姿势
前几天发的一篇文章《Redlock:Redis分布式锁最牛逼的实现》,引起了一些同学的讨论,也有一些同学提出了一些疑问,这是好事儿。本文在讲解如何使用Redisson实现Redis普通分布式锁,以及Redlock算法分布式锁的几种方式的同时,也附带解答这些同学的一些疑问。
Redis几种架构
Redis发展到现在,几种常见的部署架构有:
单机模式;
主从模式;
哨兵模式;
集群模...
查看全文 >>
Redis实现分布式锁
系列文章基于Redis2.8版本1:Redis学习资料收集2:Redis基础数据结构3:Redis实现分布式锁
官方实现
https://redis.io/topics/distlock
官方实现--翻译中文
http://www.redis.cn/topics/distlock.html
声明:看了很多文章,大多数文章都是摘取了官方文档,或者在上面进行加工,所以建议大家可以看上面的参考文档...
查看全文 >>
高并发架构系列:Redis并发竞争key的解决方案详解
需求由来
1.Redis高并发的问题
Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿、缓存雪崩、缓存和数据一致性,以及今天要谈到的缓存并发竞争。
这里的并发指的是多个redis的client同时set key引起的并发问题。
2.出现并发设置Key的原因
Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。...
查看全文 >>
高并发架构系列:分布式锁的由来、特点及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。
什么是分布式锁
要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。
1.线程锁
主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在...
查看全文 >>
redis为什么这么火该怎么用
最近一些人在介绍方案时,经常会出现redis这个词,于是很多小伙伴百度完redis也就觉得它是一个缓存,然后项目里面把数据丢进去完事,甚至有例如将实体属性拆分塞进redis hash里面的奇怪用法等等!原因是什么呢?大家觉得redis火,使用了redis项目就是高大上的,于是不管三七二十一,项目里用上强塞一个用上!这里本人想说的是你知道redis为什么这么火么,应该怎么用么?下面带着本人拙建...
查看全文 >>
云栖社区Redis&MongoDB大群建立了,究竟什么操作让钉群刚一建立人数就达600+ ?
欢迎大家加入Redis&MongoDB 社区大群!为满足广大开发者对更多数据库产品的学习需求,我们特别新建了Redis&MongoDB社区交流群,邀请多位阿里数据库专家入驻,为广大云用户提供专业的技术分享及回答,定期在国内开展线下技术沙龙,专家技术直播,欢迎大家加入!
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类ke...
查看全文 >>
基于Dynomite的分布式延迟队列
最近看了Dyno-queues分布式延迟队列的源码,发现了一些不错的技巧,而本文是对Dyno-queues架构精华的总结。本文是根据 https://medium.com/netflix-techblog/distributed-delay-queues-based-on-dynomite-6b31eca37fbc 翻译而来,如果有不准之处请大家多包含。
在Netflix的平台上运行着许多的业务...
查看全文 >>