摘要:
jmm内存模型 java线程内存和cpu缓存模型类似,是基于cpu缓存模型来建立的,java线程内存模型是标准化的,屏蔽了底层不同操作系统的差异 jmm数据原子操作 read读取:从主内存读取数据 load载入:将主内存数据读取到的数据写入工作内存 use使用:从工作内存读取出数据使用 assign 阅读全文
摘要:
java虚拟机的组成 栈 线程隔离,每个线程分布独立的栈空间。 栈帧 栈由一个个栈帧组成,进入到另一个方法时新开辟一个栈帧 局部变量表:记录局部变量值 操作数栈:存放临时操作数,将需要运算的变量值加载出来,运算数从栈顶弹出值,得到结果后压回栈内 动态链接:指向运行时常量池中该栈帧所属方法的引用,持有 阅读全文
摘要:
定义:索引是帮助数据库获得数据的排好序的数据结构 索引大大减少了服务器需要扫描的数据量 索引可以帮助服务器避免排序和临时表 索引可以将随机I/O变成顺序I/O 索引只有帮助存储引擎快速查找到记录,带来的好处大于其带来的额外工作时,索引才是有效的。对于非常小的表,就不适合索引。因为全表扫描来的更直接, 阅读全文
摘要:
两阶段提交方案/XA方案 也叫做两阶段提交事务方案,有一个事务管理器,负责协调多个数据库(资源管理器)的事务,事务管理器先确认各个数据库你准备好,如果每个数据库都回复ok,那么就正式提交事务,在各个数据库上执行操作;如果任何一个数据库回答不ok,那么就回滚事务。 这种分布式事务方案,比较适合单块应用 阅读全文
摘要:
原文:https://www.cnblogs.com/barrywxx/p/11644803.html 1. 基于数据库实现分布式锁; 2. 基于缓存(Redis等)实现分布式锁; 3. 基于Zookeeper实现分布式锁; 一, 基于数据库实现分布式锁 1. 悲观锁 利用select … wher 阅读全文
摘要:
dubbo十层结构 service 接口层,提供者和消费者实现代码 config 配置层,对服务做相应的配置 proxy 服务代理代理层,透明生成客户端的sub和服务端的skeleton registry 服务注册层,服务的注册与发现 cluster 集群层,封装多个服务提供者的路由集负载均衡,将多 阅读全文
摘要:
Cache Aside Pattern (1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 (2)更新的时候,先删除缓存,然后再更新数据库 先删除后更新 避免更新过程中新来的读请求读到旧缓存数据。或者修改了数据库后删除缓存操作失败了,就会导致redis与数据 阅读全文
摘要:
防止缓存雪崩 搭建高可用redis集群 本地ehcache缓存 + hystrix限流&降级 redis持久化,快速恢复缓存数据 防止缓存穿透 缓存空值,缺点是会浪费一些内存,设置过期时间使其过期删除。 布隆过滤器拦截,将一些不可能存在的key列举,缺点是有一定的误识别率和删除困难。 阅读全文
摘要:
普通的redis读写分离架构面对海量数据时存储力是不够的,所以需要redis cluster集群来分布式缓存数据。 redis cluster 支撑N个redis master node,每个master node都可以挂载多个slave node 读写分离的架构,对于每个master来说,写就写到 阅读全文
摘要:
为了应对突发故障,redis提供了RDB和AOF两种持久化功能支持中重启找回之前的数据。对于企业级redis构架来说,要做到海量数据高并发高可用,持久化是必不可少的。 1、RDB和AOF两种持久化机制的介绍 RDB持久化机制,对redis中的数据执行周期性的持久化 AOF机制对每条写入命令作为日志, 阅读全文