摘要:
概念 一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同,不论执行多少次,产生的效果和返回的结果都是一样的 场景 查询操作:查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作 删除操作:删除操作也是幂等的,删除一次和多次删除都是把数据删除。(注意 阅读全文
摘要:
新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 ) Eden : from : to = 8 : 1 : 1 ( 可以通过参数 –XX:SurvivorRatio 来设定 ),即: Eden = 8/10 的新生代空 阅读全文
摘要:
事务中的几个常见的概念 脏写 一个事务修改了另一个未提交事务修改过的数据 脏读 一个事务读到了另一个未提交事务修改过的数据 不可重复读 一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值 幻读 一个事务先根据某些条件查询出一些记录, 阅读全文
摘要:
简介 ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个 通过ThreadLocalMap实现,内部是一个Entry[],继承WeakRefer 阅读全文
摘要:
概览 设计目标 是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用 简介 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 阅读全文
摘要:
NIO操作过程 非阻塞读/写操作 读-- 从通道读取数据到buffer,同时可以继续做别的事情,但数据都到buffer之后,线程再继续处理数据 写-- 一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程可以同时去做别的事情 Buffer(缓冲区) IO 面向流(Stream orie 阅读全文
摘要:
锁:是一种用来解决多个执行线程访问共享资源错误或数据不一致问题的工具。 本质:同一时间只允许一个用户操作 场景 避免不同节点重复相同的工作 避免破坏数据的正确性 实现 基于 MySQL 中的锁::MySQL 本身有自带的悲观锁 for update关键字,也可以自己实现悲观/乐观锁来达到目的,要关注 阅读全文
摘要:
过期处理 定期删除 redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除 惰性删除 定期删除可能会导致很多过期 key 到了时间并没有被删除掉。所以就有了惰性删除。假如你的过期 key,靠定期删除没有被删除掉,还停留在内存里,除非你的系统去查一下那个 阅读全文
摘要:
快照(snapshotting)持久化(RDB) 该方式是redis默认 持久化方式 Redis可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis主从结构,主要用来提高Re 阅读全文
摘要:
缓存雪崩 缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉 解决方案 事前:尽量保证整个redis集群的高可用性,发现机器宕机尽快补上。选择合适的内存淘汰策略。 事中:本地ehcache缓存+hystrix限流&降级,避免MySQL崩掉 事后:利用re 阅读全文
摘要:
1 完全基于内存 2 数据结构简单,对数据操作也简单 3 只有单线程,避免了不必要的上下文切换,也不存在竞态,不存在多进程或多线程导致的切换而消耗CPU,不用开了各种锁的问题 4 使用多路IO复用模型,非阻塞IO 5 使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样(是基于 阅读全文
摘要:
三种集群方式 主从同步:主从复制模式中包含一个主数据库实例(master)与一个或多个从数据库实例(slave) 优点: master能自动将数据同步到slave,可以进行读写分离,分担master的读压力 master、slave之间的同步是以非阻塞的方式进行的,同步期间,客户端仍然可以提交查询或 阅读全文
摘要:
eureka 服务发现客户端 DiscoveryClinet职责(核心) 注册服务无试了到Eureka Server中; 发送新塘更新与Eureka Server的租约; 在服务关闭时从Eureka Server中取消租约,服务下线; 查询在Eureka Server中注册的服务实例列表。 Disc 阅读全文
摘要:
核心功能: 分布式/版本化配置 服务注册合发现 服务路由 服务和服务之间的调用 负载均衡 断路器 分布式消息传递 ...... 技术体系 组件 服务注册与发现组件:Eureka、Zookeeper和Consul等 Eureka是一个REST风格的服务注册与发现的基础服务组件 服务调用组件:Hystr 阅读全文
摘要:
作用域 singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。 prototype : 每次请求都会创建一个新的 bean 实例。 request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。 session 阅读全文
摘要:
AOP(面向切面编程) 怎么理解这个切面编程的概念及优点? 概念: 横切关注点与业务逻辑相分离,切面能帮助我们模块化横切关注点; 优点: 现在每个关注点都集中于一个地方,而不是分散到多处代码中; 服务模块更简洁,因为它们只包含主要关注点(或核心功能)的代码,而次要关注点的代码被转移到切面中了。 AO 阅读全文
摘要:
流程: 客户端(浏览器)发送请求,直接请求到 DispatcherServlet。 DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler。 解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 Han 阅读全文
摘要:
工厂模式 Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。 BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于ApplicationContext 来说会占用更少的内存,程序启动速度更快。 Ap 阅读全文
摘要:
关于Transactional注解 五个表示隔离级别的常量 TransactionDefinition.ISOLATION_DEFAULT:使用后端数据库默认的隔离级别,Mysql 默认采用的 REPEATABLE_READ隔离级别 Oracle 默认采用的 READ_COMMITTED隔离级别. 阅读全文
摘要:
判断对象是否死亡的两种方法 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。 优点: 简单 缺点: 无法解决相互循环引用 可达性分析算法 基本思想就是通过一系列的称为 “GC Roots” 的 阅读全文