上一页 1 ··· 7 8 9 10 11 12 13 下一页
该文被密码保护。 阅读全文
posted @ 2020-06-09 19:46 jingyi_up 阅读(0) 评论(0) 推荐(0)
摘要: 参考文章: 三级缓存解决循环依赖问题:https://juejin.im/post/5e9b26fe6fb9a03c7413841e 1、spring IOC容器各类结构 获取bean和创建bean流程: 入口:AbstractBeanFactory的getBean( ),-->doGetBean( 阅读全文
posted @ 2020-05-31 22:06 jingyi_up 阅读(15) 评论(0) 推荐(0)
摘要: 1、Bean的初始化顺序导致的项目启动失败 现象:shua-video项目中引用了配置中台bp-config的SDK,然后在mq消息监听类中使用。如上使用方式,在waterService中引用了bp-config。在测试环境mq中没有消息消费时项目能正常启动,但在线上有消息消费时项目启动报错,提示找 阅读全文
posted @ 2020-05-30 20:37 jingyi_up 阅读(86) 评论(0) 推荐(0)
摘要: 1、zookeeper原理 zookeeper基于ZAB协议实现分布式数据一致性,ZAB协议包含两种模式: 1、崩溃恢复,即leader挂掉之后选举新的leader 2、原子广播,即leader和其他节点间的数据同步 zookeeper中有三类节点: leader:可以处理事务和非事务请求,负责向f 阅读全文
posted @ 2020-05-30 15:58 jingyi_up 阅读(444) 评论(0) 推荐(0)
摘要: 1、数据模型 zk的存储结构和标准的文件系统非常类似,每一个节点称之为ZNode,是zk的最小单元。每个ZNode上都可以保存数据以及添加子节点,形成一个层次化的树形结构。节点类型有以下几种: (1)持久节点(PERSISTENT),创建后会一直在zk服务器上,直到主动删除。 (2)持久有序节点(P 阅读全文
posted @ 2020-05-29 21:24 jingyi_up 阅读(219) 评论(0) 推荐(0)
摘要: 1、基于数据库实现分布式锁 1.2、基于数据库表 要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。创建一张像这样的表 CREATE TABLE `methodLock` 阅读全文
posted @ 2020-05-29 10:44 jingyi_up 阅读(111) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-05-28 19:29 jingyi_up 阅读(0) 评论(0) 推荐(0)
摘要: 1、缓存雪崩 缓存雪崩就是Redis 的大量热点数据同时过期(失效),因为设置了相同的过期时间,刚好这个时候Redis请求的并发量又很大,就会导致所有的请求落到数据库。 缓存雪崩的解决方案: (1)加互斥锁或者使用队列,针对同一个key只允许一个线程到数据库查询 (2)缓存定时预先更新,避免同时失效 阅读全文
posted @ 2020-05-21 21:50 jingyi_up 阅读(143) 评论(0) 推荐(0)
摘要: 1、Redis集群 redis集群主要有以下优势: (1)提升性能:虽然redis本身的QPS已经很高,但是在并发量非常高的情况下,性能还是会受影响,通过集群可以进一步提升服务的性能。 (2)存储扩展:redis是内存数据库,数据量较大时,需要横向扩展来增加存储量。 (3)提高服务可用性和数据安全性 阅读全文
posted @ 2020-05-21 17:16 jingyi_up 阅读(363) 评论(0) 推荐(0)
摘要: 1、redis为什么快? 根据官方数据,redis的QPS可以达到10万左右,速度快主要有以下几点: (1)KV结构的内存数据库,时间复杂度O(1) (2)单线程,好处在于: 没有创建线程、销毁线程带来的消耗; 避免了上下文切换导致的CPU开销; 避免了线程之间的竞争问题,如加锁释放锁等。 (3)多 阅读全文
posted @ 2020-05-19 21:29 jingyi_up 阅读(2442) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 下一页