05 2020 档案

摘要:参考文章: 三级缓存解决循环依赖问题:https://juejin.im/post/5e9b26fe6fb9a03c7413841e 1、spring IOC容器各类结构 获取bean和创建bean流程: 入口:AbstractBeanFactory的getBean( ),-->doGetBean( 阅读全文
posted @ 2020-05-31 22:06 jingyi_up 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1、Bean的初始化顺序导致的项目启动失败 现象:shua-video项目中引用了配置中台bp-config的SDK,然后在mq消息监听类中使用。如上使用方式,在waterService中引用了bp-config。在测试环境mq中没有消息消费时项目能正常启动,但在线上有消息消费时项目启动报错,提示找 阅读全文
posted @ 2020-05-30 20:37 jingyi_up 编辑
摘要:1、zookeeper原理 zookeeper基于ZAB协议实现分布式数据一致性,ZAB协议包含两种模式: 1、崩溃恢复,即leader挂掉之后选举新的leader 2、原子广播,即leader和其他节点间的数据同步 zookeeper中有三类节点: leader:可以处理事务和非事务请求,负责向f 阅读全文
posted @ 2020-05-30 15:58 jingyi_up 阅读(419) 评论(0) 推荐(0) 编辑
摘要:1、数据模型 zk的存储结构和标准的文件系统非常类似,每一个节点称之为ZNode,是zk的最小单元。每个ZNode上都可以保存数据以及添加子节点,形成一个层次化的树形结构。节点类型有以下几种: (1)持久节点(PERSISTENT),创建后会一直在zk服务器上,直到主动删除。 (2)持久有序节点(P 阅读全文
posted @ 2020-05-29 21:24 jingyi_up 阅读(200) 评论(0) 推荐(0) 编辑
摘要:1、基于数据库实现分布式锁 1.2、基于数据库表 要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。创建一张像这样的表 CREATE TABLE `methodLock` 阅读全文
posted @ 2020-05-29 10:44 jingyi_up 阅读(83) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-05-28 19:29 jingyi_up 编辑
摘要:1、缓存雪崩 缓存雪崩就是Redis 的大量热点数据同时过期(失效),因为设置了相同的过期时间,刚好这个时候Redis请求的并发量又很大,就会导致所有的请求落到数据库。 缓存雪崩的解决方案: (1)加互斥锁或者使用队列,针对同一个key只允许一个线程到数据库查询 (2)缓存定时预先更新,避免同时失效 阅读全文
posted @ 2020-05-21 21:50 jingyi_up 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1、Redis集群 redis集群主要有以下优势: (1)提升性能:虽然redis本身的QPS已经很高,但是在并发量非常高的情况下,性能还是会受影响,通过集群可以进一步提升服务的性能。 (2)存储扩展:redis是内存数据库,数据量较大时,需要横向扩展来增加存储量。 (3)提高服务可用性和数据安全性 阅读全文
posted @ 2020-05-21 17:16 jingyi_up 阅读(326) 评论(0) 推荐(0) 编辑
摘要:1、redis为什么快? 根据官方数据,redis的QPS可以达到10万左右,速度快主要有以下几点: (1)KV结构的内存数据库,时间复杂度O(1) (2)单线程,好处在于: 没有创建线程、销毁线程带来的消耗; 避免了上下文切换导致的CPU开销; 避免了线程之间的竞争问题,如加锁释放锁等。 (3)多 阅读全文
posted @ 2020-05-19 21:29 jingyi_up 阅读(2342) 评论(0) 推荐(0) 编辑
摘要:1、发布订阅模式 1.1、列表实现消息队列的局限性 通过list 的rpush 和 lpop(或 lpush和rpop)可以实现消息队列,但是会有很多局限性: 1)消费者需要不停地调用lpop ,通信的开销很大。 2)如果生产者生产消息的速度远大于消费者消费的速度,list会占用大量的内存。 3)不 阅读全文
posted @ 2020-05-18 16:45 jingyi_up 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1、redis特点 redis是一个key-value内存数据库,key和value的最大长度限制是512M,有以下特点: (1)性能极高,读的速度是110000次/s,写的速度是81000次/s。 (2)支持数据的持久化。 (3)支持丰富的数据类型。 (4)支持数据备份(master-slave) 阅读全文
posted @ 2020-05-15 14:38 jingyi_up 阅读(36) 评论(0) 推荐(0) 编辑
摘要:1、优化思路 说到数据库性能优化,一般情况下是为了让查询速度更快。一个查询的动作由很多个环节组成,每个环节都会消耗时间,要提高查询效率,就要从每一个环节入手。 2、连接——配置优化 第一个环节是客户端连接到服务端,连接可能出现什么样的性能问题呢?有可能是服务端连接数不够导致应用程序获取不到连接,比如 阅读全文
posted @ 2020-05-13 21:11 jingyi_up 阅读(56) 评论(0) 推荐(0) 编辑
摘要:1、锁的类型 官网把锁分成8类,如下: 第一个是行级别的锁(包括共享锁和排他锁),第二个是表级别的锁(也叫意向锁,也有意向共享锁和意向排他锁),后面三个Record Locks、Gap Locks、Next-Key Locks,把它们叫做锁的算法,也就是分别在什么情况下锁定什么范围。 2、表锁和行锁 阅读全文
posted @ 2020-05-13 15:31 jingyi_up 阅读(43) 评论(0) 推荐(0) 编辑
摘要:1、什么是数据库事务 (1)使用场景 比如下单,会操作订单表,资金表,物流表等等,这个时候需要让这些操作都在一个事务里面完成。当一个业务流程涉及多个表的操作的时候,我们希望它们要么是全部成功的,要么都不成功,这个时候就会启用事务。又比如行内转账的这种操作,如果把它简单地理解为一个账户的余额增加,另一 阅读全文
posted @ 2020-05-11 21:12 jingyi_up 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1、索引类型 在Innodb里面,索引有三种类型:普通索引,唯一索引(主键索引是特殊的唯一索引)、全文索引。 普通索引(normal):也叫非唯一索引,是最普通的索引,没有任何限制。 唯一索引(unique):要求键值不能重复。主键索引是一种特殊的唯一索引,还多了一个限制条件,要求键值不能为空。主键 阅读全文
posted @ 2020-05-08 21:24 jingyi_up 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1、MySQL体系结构 (1)模块详解 Connector:用来支持各种语言和SQL的交互,如java的JDBC。 Management Services & Utilties:系统管理和控制工具,包括备份恢复、MySQL复制、集群等。 Connection Pool:连接池,管理需要缓冲的资源。 阅读全文
posted @ 2020-05-08 17:34 jingyi_up 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1、MySQL通信 (1)同步和异步 * 同步:同步通信依赖于被调用方,受限于被调用方的性能。应用操作数据库,线程会阻塞,等待数据库的返回。 * 异步:异步可以避免应用阻塞,但是一个连接就会创建一个线程,线程间切换会占用大量CPU资源。而且异步通信会带来编码的复杂度,一般不建议使用,如果要使用异步, 阅读全文
posted @ 2020-05-07 21:30 jingyi_up 阅读(28) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示