
分布式
文章平均质量分 52
菜鸟歪歪歪
这个作者很懒,什么都没留下…
展开
-
本地搭建Minio服务
minio下载原创 2022-07-05 17:25:43 · 864 阅读 · 0 评论 -
本地存储集成minio实现oss对象存储
继承minio分布式存储,图片链接直接下载,而不是查看原创 2022-07-05 17:15:35 · 2729 阅读 · 0 评论 -
分布式锁---Redis的分布式锁的实现思想
(每步缺一不可)获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value值为一个随机生成的UUID,通过此再释放锁的时候进行判断获取锁的时候还设置一个获取的超时时间,若超过这个时间则放弃获取锁释放锁的时候,通过UUID判断是不是该锁,若是该锁,则执行delete进行锁释放(Redisson为了兼容新老版本,只要不是原子操作,就用lua脚本)问题一:超时时间长短问题解决:在加锁成功后,启动一个守护线程(Redission中的Watc.原创 2021-08-08 15:39:38 · 202 阅读 · 0 评论 -
基于AMQP的消息中间件-RabbitMQ原理
RabbitMQ就是基于AMQP协议去设计的一款软件,在RabbitMQ中一定有交换器和队列概念,中间的那部分就是一个borker,一个borker中可以运行多个v-host(虚拟主机),默认的RabbitMQ启动后里面就有一个v-host(/[根]),一个v-host中可以有多个交换器和队列组成(多个交换器多个队列),交换器和队列之间通过路由键进行绑定,路由键可选范围字符串+‘*’+‘#‘,通过‘.’进行分割,*号代表一个不包含‘.‘的完整的单词,‘#’代表所有,一切,路由键,队列和交换器之间的对应关系.原创 2021-08-07 16:17:11 · 304 阅读 · 0 评论 -
Elasticsearch(ES)底层写流程,包含查询性能高的原因(秒级处理),近实时(Near RunTime)特性
整体流程介绍首先客户端发一个请求,要写数据(增删改),数据是存在索引index中的,索引分成若干个分片(shard),不管是主分片还是副分片,都是存在硬盘上的,落实成文件,这是必然流程,一定是这样的,但是要做写操作的时候,往硬盘里面写数据,是I/O操作,重量级操作,很慢,不符合ES的近实时(NRT,Near RunTime)特性,无论是写还是查,1秒内返回。要是使用I/O流,未必能达到1秒返回。默认 ES会在内存里面开一个缓存,缓存的大小无限制,但里面只存1秒的数据,记录完一秒的数据,下一秒重新开一个.原创 2021-08-07 10:27:26 · 827 阅读 · 1 评论 -
双写一致中的cache aside pattern 边路缓存思想与实际开发对比
定义:当访问数据库执行写操作的时候,有缓存介入到整体执行流程中时,先写数据库保证成功的前提下,淘汰(删除)缓存中对应的数据。查询数据的时候,有缓存介入到整体执行流程中时,先查询缓存,如果有数据直接返回;如果没有数据,查询数据库,并将数据库查询结果保存到缓存中,再返回。正式开发项目中一般写操作分为保存(新增和修改)和删除。保存的时候,是同步缓存数据;删除的时候,是淘汰缓存数据。目的是,提升缓存的应用效率。边路缓存思想中的淘汰目的1、保证缓存的数据绝对正确;2、没有查询,就没有缓存的必要。边路缓存原创 2021-08-06 18:24:24 · 409 阅读 · 0 评论 -
分布式系统中的缓存黑洞,缓存雪崩,缓存穿透,缓存击穿问题及解决方案和一些自己的见解
今天学习了处理在分布式系统中使用缓存的会出现的问题(缓存黑洞,缓存雪崩,缓存穿透,缓存击穿)。整体还是有一些边路缓存思想在里面,下面是官方解释和本人的一些解释。public class DetailsServiceImpl implements DetailsService { @Autowired private TbItemMapper itemMapper; @Autowired private TbItemDescMapper itemDescMapper;原创 2021-08-05 21:21:14 · 318 阅读 · 0 评论