`

dubbo缓存低命中率之fake优化

 
阅读更多

 

    背景介绍:

      今年第二个重要的优化是会员优化,具体流程见下图:

      
      

      为啥要做优化呢?因为在我们的场景中会员其实是少数,大多数用户其实都不是会员,但是每个用户比如说购买某些商品的时候,都要去查询一遍是否是会员,因为针对会员的话我们要展示一些会员价嘛。其实我们的会员接口是有缓存的,按理说正常不会很慢。但是细想比如你1000w用户,1w会员用户,那么1000w次查询,只有1w次能命中缓存,那么999w次都要走到db。 无奈我们的db略坑,每w次调用,总有那么一两次很慢,经过sql reivew发现也没啥问题,也都走了正常的索引了。这样就导致了经常会有dubbo超时的报警了,无奈只好优化代码了,提高缓存命中率,尽量少的走db,以空间换时间了。

 

    技术优化:

      1.本地存根  2. fake缓存

      具体优化流程见下图:
      
      

      说明:

      1. 当库里面读不到会员信息的时候,写个fake对象到cache里面关键属性为空。

      2. 处理fake的地方有两个一个是在api里面,防止哪个消费者使用了本地存根,直接读取account缓存,关键属性为空会导致那些应用空指针的问题。如果消费者不走本地缓存则直接走dubbo接口,所以dubbo实现里面对获取的缓存对象做是否fake的处理再返回给消费方。

      3. 所有涉及会员更新或者插入的操作都要删除缓存,之前我就是由于插入会员的时候缓存没有删掉,导致了一个bug。一开始会员记录没有,插入会员的时候不用删除缓存没问题的原因是缓存里面压根就没有任何会员的信息,但是fake了会员对象就一下子不同了。

 
 

  • 大小: 18.8 KB
  • 大小: 38.4 KB
分享到:
评论

相关推荐

    dubbo+zookeeper缓存方案

    Dubbo 和 Zookeeper 结合使用的缓存方案是分布式系统中常见的设计,主要目的是解决多节点环境下数据一致性的问题,确保在各个节点之间的缓存能够实时同步更新。以下将详细阐述这个方案的具体实现、工作原理以及其...

    关于Dubbo异步调用的优化

    对原有的dubbo远程调用的异步的缺陷性进行了优化方案

    dubbo-cache:@DubboCache提供dubbo消费者直接使用缓存的能力,当缓存不存在时,再访问远程dubbo服务

    提供dubbo消费者直接使用缓存的能力,当缓存不存在时,再访问远程dubbo服务。 相对于dubbo默认的缓存机制,此项目具有如下优点: 原生dubbo cache机制只能缓存结果到消费者jvm中,并且cache key不能选择。 缓存key...

    dubbo资源 dubbo-admin dubbo demo

    【标题】"dubbo资源 dubbo-admin dubbo demo" 提供的是关于Apache Dubbo的相关素材,主要包括了Dubbo-admin的管理和示例项目。Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了丰富的服务治理功能,是阿里...

    incubator-dubbo-dubbo-2.6.1

    【标题】"incubator-dubbo-dubbo-2.6.1" 是一个Apache Incubator项目Dubbo的特定版本,这里的2.6.1表示该版本是Dubbo的稳定分支之一。 【描述】提到的"incubator-dubbo-dubbo-2.6.1"表明这是Apache孵化器中的Dubbo...

    dubbo-dubbo-2.7.3.rar

    dubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo...

    dubbo示例代码dubbo-sample

    【Dubbo 示例代码详解】 Dubbo 是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它主要提供了RPC(远程过程调用)服务,并且包含了服务注册与发现、负载均衡、容错处理、监控等全面的服务治理功能。本示例...

    dubbo admin jdk1.8

    这个压缩包的使用不仅简化了部署过程,还确保了在JDK1.8下的兼容性和稳定性,这对于依赖Dubbo且希望利用管理工具优化服务运行的开发者来说非常有价值。同时,了解如何正确配置和使用Dubbo Admin,有助于提升微服务的...

    dubbo监控dubbo-monitor

    1. **服务监控**:Dubbo-Monitor可以显示服务的调用次数、调用成功率、平均响应时间等关键指标,帮助我们实时了解服务的健康状况。 2. **异常报警**:当服务出现异常时,如超时、失败率上升等,Dubbo-Monitor可以...

    SpringBoot整合Dubbo增强版

    总之,SpringBoot整合Dubbo增强版是一个优化过的解决方案,它解决了在SpringBoot中使用Dubbo时可能出现的问题,使得开发过程更加顺畅,同时也保留了Dubbo的强大服务治理功能,为微服务架构提供了坚实的基础。

    dubbo-cache 测试用例

    在分布式服务框架Dubbo中,缓存是一种提升系统性能的关键技术。`dubbo-cache`是Dubbo提供的缓存模块,它允许服务...通过深入研究`dubbo-cache项目`,开发者可以更好地掌握Dubbo缓存的使用,从而优化分布式服务架构。

    Dubbo源码分析之SPI

    总的来说,Dubbo的SPI机制是其强大功能背后的关键技术之一,它不仅提供了类似Java SPI的服务发现能力,还通过一系列的增强,使得服务的扩展和管理变得更加高效和便捷。在深入研究`dubbo-spi`和`java-spi`这两个...

    dubbo、dubbo-admin

    - Dubbo-admin提供了丰富的监控指标,如调用次数、成功率、平均耗时等,这对于诊断和优化服务性能非常有帮助。 - 通过服务治理功能,可以实时查看和调整服务的路由策略、权重分配、故障切换等。 6. **扩展性**: ...

    Apache Dubbo:Dubbo监控与运维:服务性能分析

    ### Apache Dubbo:Dubbo监控与运维:服务性能分析 #### 一、Dubbo监控概述 ##### 1.1 Dubbo监控的重要性 在现代微服务架构中,由于服务之间存在着复杂的调用关系,任何单一服务的性能问题都有可能对整体系统稳定...

    dubbodubbo.zip

    《Dubbo技术详解与实战应用》 Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,它致力于提供一个简单、高效的分布式服务解决方案。在Java世界里,Dubbo已经成为了微服务架构的重要组成部分,其核心特性...

    dubbo-admin 2.6 dubbo monitor

    简单实现的`dubbo-monitor-simple`主要功能包括统计服务调用次数、错误率、平均响应时间等,这些数据对于识别系统瓶颈、优化服务性能至关重要。 3. **服务治理**: 在Dubbo框架中,服务治理包括服务注册与发现、负载...

    dubbo接口测试调试工具

    用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要用来分析接口方法参数,主要作用在普通模式。 依赖列表:通过分析pom文件,展示已经加载的jar...

    Dubbo监控系统配置

    ### Dubbo监控系统配置详解 #### 一、Dubbo监控系统概述 Dubbo是一款高性能、轻量级的开源服务框架,旨在提供高性能和透明...同时,随着业务的发展和技术的进步,不断优化和调整Dubbo监控系统的配置也是必不可少的。

    dubbo源码分析系列

    《Dubbo源码分析系列》是一份深入探讨Java开源...通过对《Dubbo源码分析系列》的学习,开发者不仅可以掌握Dubbo的基本使用,还能深入理解其设计思想,从而更好地在实际项目中应用和优化Dubbo,提高系统的稳定性和效率。

    Dubbo高级视频教程

    ### Dubbo高级视频教程知识点概览 #### 一、Dubbo概述与分布式系统基础 - **Dubbo简介**:Dubbo是一款高性能、轻量级的开源Java RPC框架,旨在为服务治理提供简单、全面的解决方案。 - **分布式系统概念**:分布式...

Global site tag (gtag.js) - Google Analytics