广告联盟怎么建设网站,wordpress 扫码支付宝,灌云网站建设,西安分销商城网站建设目录 36.什么是TCC#xff1f;
37.分布式系统中常用的缓存方案有哪些#xff1f;
38.分布式系统缓存的更新模式#xff1f;
39.分布式缓存的淘汰策略#xff1f;
40.Java中定时任务有哪些#xff1f;如何演化的#xff1f; 36.什么是TCC#xff1f;
TCC#xff08…目录 36.什么是TCC
37.分布式系统中常用的缓存方案有哪些
38.分布式系统缓存的更新模式
39.分布式缓存的淘汰策略
40.Java中定时任务有哪些如何演化的 36.什么是TCC
TCCTry Confirm Cancel)又被称补偿事务TCC与2PC的思想很相似事务处理流程也很相似但2pc是应用在DB层面TCC则可以理解为在应用层面的2PC是需要我们编写业务逻辑来实现。
TCC他的核心思想是针对每个操作都要注册一个与其对应的确认Try和补偿Cancel。
还拿下单扣库存解释他的三个操作
Try阶段下单时通过Try操作区扣库存预留资源。
Confirm阶段确认执行业务操作在只预留的资源基础上发起购买请求。
Cancel阶段只要涉及到相关业务中有一个业务方预留资源未成功则取消所有业务资源的预留请求。 TCC的缺点
应用侵入性强TCC由于基于在业务层面至使每个操作都需要有tryConfirmCancel三个接口。
开发难度大代码开发量很大要保证数据一致性Confirm和cancel接口还必须实现幂等性。
37.分布式系统中常用的缓存方案有哪些
客户端缓存页面和浏览器缓存APP缓存H5缓存localStorage和sessionStorage
CDN缓存
内存存储数据的缓存
内容分发负载均衡
Nginx缓存本地缓存外部缓存
数据库缓存持久层缓存Mybatishibernate多级缓存MySQL查询缓存
操作系统缓存Page CacheBuffer Cache 38.分布式系统缓存的更新模式
Cache Aside模式
1.读取失效Cache数据没有命中查询DB成功后把数据写入缓存
2.读取命中读取Cache数据
3.更新把数据更新到DB失效缓存 Read/Write Througn模式
缓存代理了DB读取写入的逻辑可以把缓存看成唯一的存储 Write Back模式
这种模式下所有的操作都走缓存缓存里的数据再通过异步的方式同步到数据库里面。所以系统的写性能能够大大提升了。 分布式系统缓存淘汰策略
缓存淘汰又成为缓存逐出是指在存储空间不足的情况下缓存系统主动释放一些缓存对象获取更多的存储空间。一般LRU用的比较多可以重点了解一下。
FIFO 先进先出是一种简单的淘汰策略缓存对象以队列的形式存在如果空间不足就是放队列头部的对象。一般是链表实现。
LRU 最近最久未使用这种策略是根据访问的时间先后来进行淘汰的如果空间不足会释放最久没有访问的对象上次访问时间最早的对象。比较常见的是通过有线队列来实现。
LFU 最近最少使用这种策略根据最近访问的频率来进行淘汰如果空间不足会释放最近访问频率最低的对象。这个算法也是用优先队列实现的比较常见。
更进一步的谈谈Redis缓存淘汰的8个模式可以参考上文Redis问答部分。
39.分布式缓存的淘汰策略
分布式系统缓存淘汰策略
缓存淘汰又成为缓存逐出是指在存储空间不足的情况下缓存系统主动释放一些缓存对象获取更多的存储空间。一般LRU用的比较多可以重点了解一下。
FIFO 先进先出是一种简单的淘汰策略缓存对象以队列的形式存在如果空间不足就是放队列头部的对象。一般是链表实现。
LRU 最近最久未使用这种策略是根据访问的时间先后来进行淘汰的如果空间不足会释放最久没有访问的对象上次访问时间最早的对象。比较常见的是通过有线队列来实现。
LFU 最近最少使用这种策略根据最近访问的频率来进行淘汰如果空间不足会释放最近访问频率最低的对象。这个算法也是用优先队列实现的比较常见。
更进一步的谈谈Redis缓存淘汰的8个模式可以参考上文Redis问答部分。
40.Java中定时任务有哪些如何演化的
Timer 解释1000ms是延迟启动时间2000ms是定时任务周期每2s执行一次
ScheduledExecutorService 解释延迟1秒启动每隔1秒执行一次是前一个任务开始时就开始时间间隔但是会等上一个任务结束再开始下一个 SpringTask 解释
1.task1是隔5秒执行一次{秒}{分}{时}{日期}{月}{星期}
2.task2是延迟1秒每隔1秒执行一次
Quartz
quartz是一个开源的分布式调度库他基于Java实现 1.Job表示一个任务要执行的具体内容。
2.JobDetail表示一个具体的可执行的调度程序Job是这个可执行调度程序索要执行的内容另外JobDetail还包含了这个任务调度的方案和策略。
3.Trigger代表一个调度参数的配置什么时候去调。
4.Scheduler代表一个调度容器一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合就可以被Scheduler容器调度了。