当前位置: 首页 > news >正文

网站支付按钮怎么做北京ifc大厦

网站支付按钮怎么做,北京ifc大厦,宿州网站建设推广,网页设计培训高清图文前言 Guava Cache是一款非常优秀的本地缓存框架#xff0c;提供简洁易用的 API 供开发者使用。 这篇文章#xff0c;我们聊聊如何使用 Guava Cache 异步刷新技巧带飞系统性能 。 1 基本用法 首先#xff0c;在 Java 应用中添加 maven 依赖#xff1a; dependency提供简洁易用的 API 供开发者使用。 这篇文章我们聊聊如何使用 Guava Cache 异步刷新技巧带飞系统性能 。 1 基本用法 首先在 Java 应用中添加 maven 依赖 dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion31.0.1-jre/version /dependency然后编写测试用例 LoadingCache 是本地缓存工具支持配置加载函数定时失效等功能。 例子中配置了基于容量进行回收策略缓存最大容量设置为 100配置了定时失效和刷新函数。 定时失效 配置 expireAfterWrite 后缓存项在被创建或最后一次更新后的指定时间内会过期。 刷新函数 配置 refreshAfterWrite 设置刷新时间当缓存项过期的同时可以重新加载新值 。 我们模拟过期执行 load 方法 / 重新加载执行 reload 方法的流程执行结果见下图 执行结果表明Guava Cache 并没有后台任务线程异步的执行 load 或者 reload 方法。 expireAfterWrite 允许一个线程执行 load 方法其他线程阻塞等待 。 当大量线程用相同的 key 获取缓存值时只会有一个线程进入 load 方法而其他线程则等待直到缓存值被生成。这样也就避免了缓存击穿的危险。高并发场景下 这样还是会阻塞大量线程。 refreshAfterWrite 允许一个线程执行 load 方法其他线程返回旧的值。 单个 key 并发下使用 refreshAfterWrite 虽然不会阻塞了但是如果恰巧同时多个 key 同时过期还是会给数据库造成压力。 为了提升系统性能我们可以从如下两个方面来处理 减少过期的频率 也就是减少执行 load 方法的频率 配置 refresh expire 。采用异步刷新的策略也就是线程异步加载数据期间所有请求返回旧的缓存值。 2 两种方式实现异步刷新 2.1 重写 reload 方法 2.2 实现 asyncReloading 方法 不管使用哪种方案 都需要定义单独的线程池来执行刷新任务 。 3 异步刷新 多级缓存 2018 年笔者服务的一家电商公司需要进行 app 首页接口的性能优化。笔者花了大概两天的时间完成了整个方案采取的是两级缓存模式同时采用了 Guava 的异步刷新机制。 整体架构如下图所示 缓存读取流程如下 1、业务网关刚启动时本地缓存没有数据读取 Redis 缓存如果 Redis 缓存也没数据则通过 RPC 调用导购服务读取数据然后再将数据写入本地缓存和 Redis 中若 Redis 缓存不为空则将缓存数据写入本地缓存中。 2、由于步骤1已经对本地缓存预热后续请求直接读取本地缓存返回给用户端。 3、Guava 配置了 refresh 机制每隔一段时间会调用自定义 LoadingCache 线程池5个最大线程5个核心线程去导购服务同步数据到本地缓存和 Redis 中。 优化后性能表现很好平均耗时在 5ms 左右同时大幅度的减少应用 GC 的频率。 该方案依然有瑕疵一天晚上我们发现 app 端首页显示的数据时而相同时而不同。 也就是说 虽然 LoadingCache 线程一直在调用接口更新缓存信息但是各个服务器本地缓存中的数据并非完成一致。 这说明了两个很重要的点 1、惰性加载仍然可能造成多台机器的数据不一致 2、LoadingCache 线程池数量配置的不太合理, 导致了任务堆积。 最终我们的解决方案是 1、异步刷新结合消息机制来更新缓存数据也就是当导购服务的配置发生变化时通知业务网关重新拉取数据更新缓存。 2、适当调大 LoadingCache 的线程池参数并在线程池埋点监控线程池的使用情况当线程繁忙时能发出告警然后动态修改线程池参数。 4 总结 Guava Cache 非常强大但它并没有后台任务线程异步的执行 load 或者 reload 方法而是通过请求线程来执行相关操作。 为了提升系统性能我们可以从如下两个方面来处理 减少过期的频率 也就是减少执行 load 方法的频率 配置 refresh expire 。采用异步刷新的策略也就是线程异步加载数据期间所有请求返回旧的缓存值。 联系方式 如果我的文章对你有所帮助还请帮忙点赞、在看、转发一下你的支持会激励我输出更高质量的文章非常感谢 同时可以通过关注公众号《编程乐学》进行留言同时公众号还有更多有趣的项目以及关于学习编程的笔记资料大家可以看看欢迎大家进行留言。
http://www.zqtcl.cn/news/40410/

相关文章:

  • 租房网站建设多少钱一台服务器一个固定ip怎样做两个网站
  • 碑林区营销型网站建设wordpress法律主题
  • 嘉兴响应式网站做网站的目的是什么
  • 品辰设计的网站谁做的做煤的网站app
  • 南宁建站软件南昌网站建设哪家好薇
  • 医疗网站怎么做推广做商城网站哪里
  • 鑫牛元网站建设鄂尔多斯网站制作
  • 手机网站 域名解析wordpress 图标不显示
  • 网站建设佰金手指科杰十八专门做三国战纪的网站叫什么
  • 浏览器网站大全免费ajax网站模板
  • 抖音代运营是怎么回事网站标题优化工具
  • 引用网站信息怎么做备注品牌网官网
  • 忻州推广型网站建设前端开发常用框架
  • 莒县建设局网站创建自己的网站怎么弄
  • 进出口贸易网站制作最新注册域名查询
  • wordpress快速建站教程视频教程网站的建设及发布步骤
  • 淄博网站制作服务优化做菠菜网站多少钱
  • 建设厅三类人员网站网站 图标 素材
  • 网站修改数据做网站公司怎样
  • 无锡在线制作网站asp网站模板下载
  • 网站建设预付款如何付apache重定向wordpress
  • 太原做网站找谁邢台123招聘信息网
  • 企业网站管理系统 免费设计素材网站
  • 设计 p网站做网站都需要什么资料
  • 网站建设费 摊销处理网站开发建设付款方式
  • 建设工程类公司网站电子商务学网站建设好吗
  • angularjs 做电商网站郑州外贸网站建设公司价格
  • 快速学习网站建设信用体系网站建设一体化建设
  • 简单的美食网站模板免费下载内蒙古网站建设百度
  • 电商物流建设网站过程长春优化所