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

做网站还赚钱么wordpress获取站点链接

做网站还赚钱么,wordpress获取站点链接,用angular做的网站链接,广州网站优化排名系统1 springboot集成本地缓存基本常识#xff1a; SpringBoot集成本地缓存性能之王Caffeine示例详解 SpringBoot 缓存之 Cacheable介绍 2 线上问题 2.1 发现过程 接口内的rpc调用报错#xff0c;error级别的日志被监控平台报警。 2.2 故障排查 2.2.1 代码 Cacheable(cach…1 springboot集成本地缓存基本常识 SpringBoot集成本地缓存性能之王Caffeine示例详解 SpringBoot 缓存之 Cacheable介绍 2 线上问题 2.1 发现过程 接口内的rpc调用报错error级别的日志被监控平台报警。 2.2 故障排查 2.2.1 代码 Cacheable(cacheManager RedisKeyConstants.CACHE_MANAGER_LOCAL, value RedisKeyConstants.Gpc.certificate.CACHE_NAME, key RedisKeyConstants.Gpc.certificate.CACHE_KEY) public User getData(Object obj) {User user new User();try {ResponseUser res aliyunClient.doRpcCall(obj);if (!resp.getCode().equals(success!)) {log.error(error happening, code:{}, msg:{}, resp.getCode(), resp.getMsg());return null;}if (res.getData() null) {log.error(error happening. rpc return a Null Object, code:{}, msg:{}, resp.getCode(), resp.getMsg());return null;}} catch (Exception e) {log.error(rpc调用异常, e);return user;}return user; }2.2.2 原因 1主要有两个一个是当rpc调用异常的时候会被try捕获并且直接return一个实例化的user对象然后触发Cacheable注解定义的本地缓存机制导致异常调用的时候对象也被缓存随后直至本地缓存中该条目过期后面的请求才会发起rpc请求更新缓存所以对于rpc调用时获取的错误应该不缓存。 2rpc调用成功但是返回了一个空对象这个时候我直接返回的是null值导致本地缓存没有存储这个空值随后当流量走getData这个方法时因为没有查到缓存就会一直走rpc调用造成cpu时间浪费同时会延长响应时间如果某一波大流量打进来rpc服务甚至会挂掉这个时候会发生缓存击穿。 3 解决 3.1 代码 Cacheable(cacheManager RedisKeyConstants.CACHE_MANAGER_LOCAL, value RedisKeyConstants.Gpc.certificate.CACHE_NAME, key RedisKeyConstants.Gpc.certificate.CACHE_KEYunless #resultnull) public User getData(Object obj) {User user new User();try {ResponseUser res aliyunClient.doRpcCall(obj);if (!resp.getCode().equals(success!)) {log.error(error happening, code:{}, msg:{}, resp.getCode(), resp.getMsg());return user;}if (res.getData() null) {log.error(error happening. rpc return a Null Object, code:{}, msg:{}, resp.getCode(), resp.getMsg());return user;}} catch (Exception e) {log.error(rpc调用异常, e);return null;}user.setXXXX(res.getData().getXXXX());....return user; }3.2 解决方法 3.2.1 确保springboot不会缓存null值 在Cacheable注解上添加unless #resultnull属性 3.2.2 try捕获异常时返回null解决rpc异常仍然缓存的问题 3.2.3 当rpc调用正常返回null或者有对象但没有实际存储值时返回user对象以使得本地缓存这个实例化但是无值的user解决缓存击穿问题 3.3 测试过程 1 首先会在各个return之前会打印相关的error级别的日志以作观察 2 在rpc调用代码中故意写一个错误的url以使得出发异常或插入int i 5/0触发异常第一次调用触发rpc异常然后第二次再进行如果仍然触发异常或者执行了getData方法的代码就说明异常后的返回值不会缓存。 3 模拟rpc调用返回空值分两次调用查看第二次是否会走getData方法如果没走就说明缓存生效。 4 一些技术的其他思考【从阿里p8的聊天中得到的一些技术上的思考】 4.1 为什么对于rpc调用异常后的方法返回值不进行缓存如果rpc故障时间长每次都不缓存是不是也存在缓存失效长时间内数据都会进行rpc调用【或者问不对rpc调用异常进行缓存的精确场景。】 1首先既然rpc异常了就不应该对null值进行缓存后续的查询不能一直用null缓存。 2rpc是暂时故障被调用方会进行迅速秒级的故障转移比如重启、切换在故障切换期间 4.2 如果rpc服务重启了而本地缓存也刚好过期了这个时候大流量过来同时调用这个rpc服务怎么办呢 1. 异常降级处理 对于RPC服务可以实现服务降级策略当检测到RPC服务负载过高或出现异常时可以临时返回一些兜底数据或执行简化的逻辑以减轻服务压力。 2. 限流 对于高频请求尤其是批量操作导致的数据访问可以通过限流策略来控制请求速率避免短时间内对后端服务包括缓存和RPC服务造成过大压力。 3. 分布式锁 当缓存失效后为了防止同时有大量对同一数据的访问请求打到后端服务可以引入分布式锁的机制。在更新缓存前通过获取分布式锁来确保同一时间只有一个请求去调用RPC服务更新数据并将结果写入缓存。其他的请求只需等待缓存更新即可获取数据这种方式需要确保锁的获取与释放正确管理以防止死锁或服务延迟。
http://www.hkea.cn/news/14406510/

相关文章:

  • 东城精锐传媒专注于各类网站建设刀模 东莞网站建设
  • 网站站点规划实例黄山5个最佳景点
  • 做搜狗手机网站长尾网站域名区别
  • 个人网站可以做资讯吗亿创电力建设集团有限公司网站
  • 龙岩市住房和城乡建设局网站腾讯云做的网站会被拦截么
  • 建设国外网站三大门户网站是什么
  • 电子商务网站建设pdf毕业设计网站设计
  • 太平洋在线企业网站管理系统怎么做外贸网站seo
  • 珠海市网站建设的公司沈阳祥云医院看男科怎么样
  • 烟台企业做网站企业wap网站源码
  • 乐清网站建设网站建设江苏泗阳今天新增病例多少
  • 深圳展览设计网站建设vs网站开发表格大小设置
  • 移动网站优化排名建设银行个人手机银行下载
  • 昆山品牌网站网站建设开发软件有哪些
  • 合肥网站制作推广做外贸需要到外汇管理网站
  • 站外推广渠道网站怎么做3d商品浏览
  • 网站备案查询流程寻找长沙网站建设
  • 有什么手机网站wordpress4.8中文版
  • 网站导航设计分析沈阳网站建设哪家好
  • 域名网络的解析网站宝安第一网站
  • 做网站的linux程序代码用天地图做网站
  • 做特价网站网址wordpress主题
  • 海外网站加速免费wordpress页面设计外贸
  • 黄页网站大全在线看免费wordpress仿站网
  • 萧山做网站的企业小影 wordpress
  • 云南网站开发培训机构dw软件安装包
  • 网站的首页标题在哪里设置的自己做的网站360显示过期
  • 专业做网站登录铜仁网站优化
  • 温州捷创网站建设深圳招聘平台有哪些
  • 泰安网络推广 网站建设 网站优化pc端移动端网站开发