首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当数据在缓存中时,Apollo客户端client.readQuery返回null

当数据在缓存中时,Apollo客户端的client.readQuery方法返回null。Apollo是一个流行的开源GraphQL客户端,用于构建前端应用程序。它提供了一种简单的方式来管理应用程序的状态,并与后端服务器进行数据交互。

在Apollo中,客户端的缓存是一个本地的数据存储,用于存储从服务器获取的数据。当数据被缓存时,可以使用client.readQuery方法从缓存中读取数据。但是,如果请求的数据在缓存中不存在,或者缓存中的数据已过期,client.readQuery方法将返回null。

这种情况可能发生在以下几种情况下:

  1. 首次加载数据:当应用程序首次加载时,缓存中可能没有所需的数据,因此client.readQuery方法返回null。此时,可以使用Apollo的查询功能从服务器获取数据,并将其存储在缓存中。
  2. 数据过期:如果缓存中的数据已过期,即缓存中的数据不再与服务器上的数据匹配,client.readQuery方法也会返回null。在这种情况下,可以使用Apollo的查询功能更新缓存中的数据。
  3. 数据未缓存:如果请求的数据在缓存中不存在,client.readQuery方法同样会返回null。这可能是因为数据尚未被加载到缓存中,或者数据在缓存中被清除。在这种情况下,可以使用Apollo的查询功能从服务器获取数据,并将其存储在缓存中。

总之,当数据在缓存中时,Apollo客户端的client.readQuery方法返回null可能是由于数据尚未被加载到缓存中、数据已过期或者缓存中的数据与服务器上的数据不匹配。为了解决这个问题,可以使用Apollo的查询功能从服务器获取数据,并将其存储在缓存中,以确保client.readQuery方法返回所需的数据。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎 TKE:https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ai
  • 物联网套件(IoT Suite):https://cloud.tencent.com/product/iot-suite
  • 移动开发平台(MTP):https://cloud.tencent.com/product/mtp
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBCS):https://cloud.tencent.com/product/tbcs
  • 腾讯元宇宙(Tencent Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel MySQL 异常宕机时强制返回数据

起因 之前线上遇到一个问题, 就是MySQL挂了, 然后导致整个服务崩塌, Redis在前面完全没分担任何压力....业务常规的查询逻辑如下: 从redis获取数据, 有则返回 第一步redis无数据, 去MySQL查询数据 把第二步查询到的数据写入redis 返回数据 问题分析 redis当然不会有问题, 问题是第二步的时候...去MySQL查询数据,数据库服务已经宕机, 这时候请求阻塞住 阻塞超时,然后抛出异常,导致无法走到第三步 下一次请求来, 又继续去连接MySQL,无限阻塞,把业务服务器也拖垮 解决方案 这是我们的解决方案...MySQL宕机强制缓存数据到redis,允许部分页面为空.而不是无法提供服务 解决思路 设置好合理的MySQL连接超时时间 mysqlnd.net_read_timeout = 3 数据库连接超时之后...])) { // 记录日志, 通知xxx // Log::error($e); // 强制返回空集合

14110

Apollo 源码解析 —— Config Service 通知配置变化

notifications/v2 请求的 Namespace 暂无新通知,会将该 Namespace 对应的 Watch Key 们,注册到 deferredResults 。...也就说,有几个 配置发生变化的 Namespace ,返回几个对应的 ApolloConfigNotification 。另外,客户端接收到返回后,会增量合并到本地的配置通知信息。...12: // 例如,数据 Namespace 名为 Fx.Apollo ,而客户端 Namespace 名为 fx.Apollo 13: // 通过归一化后...例如,数据 Namespace 名为 "Fx.Apollo" ,而客户端 Namespace 名为 "fx.Apollo" 。通过归一化后,统一为 "Fx.Apollo" 。...因为客户端填写 Namespace ,写错了名字的大小写。 Config Service ,会进行归一化“修复”,方便逻辑的统一编写。

3.1K40
  • Apollo 源码解析 —— Config Service 配置读取接口

    Apollo 官方文档 —— 其它语言客户端接入指南 —— 1.3 通过不带缓存的Http接口从Apollo读取配置》 ,有该接口的接口定义说明。...messagesAsString 请求参数,客户端当前请求的 Namespace 的通知消息明细,【第 23 行】,调用 #transformMessages(messagesAsString)...Apollo 源码解析 —— Config Service 通知配置变化》 ,我们已经看到通知变更接口返回的就包括 ApolloNotificationMessages 对象。...有多个 Release ,使用 "+" 作为字符串的分隔。 第 64 至 69 行:对比 Client 的合并 Release Key 。若相等,说明配置没有改变,返回状态码为 302 的响应。...详细解析,Apollo 源码解析 —— Portal 灰度发布》

    2.3K20

    apollo客户端通知原理

    ,手动通知C端,然后失效缓存,也就是半自动化刷新 自动失效缓存不展开分析,半自动化刷新实现也很简单,基于Apollo客户端通知机制就可以实现,配置中心发布变更主体,然后应用层监听变更内容并做出响应操作即可...的 github 文档中有介绍: 1.客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送 2.客户端还会定时从Apollo配置中心拉取应用的最新配置 这是一个fallback...3.客户端Apollo配置中心获取应用的最新配置后,会保存在内存 4.客户端会把从服务端获取到的配置本地缓存一份 遇到服务不可用,或网络不通,依然能从本地恢复配置 5应用程序可以从...Apollo客户端获取最新的配置、订阅配置更新通知 长连接是更新配置的主要手段,定时刷新是辅助手段,避免长轮训失败造成数据更新丢失。...基于前一小结,如果用户发布了属性变更,RemoteConfigRepository的定时刷新或长轮询逻辑会从Apollo Server拉取最新数据到本地,然后和本地缓存(上一个版本数据)做对比,如果发现不一样则触发配置变更

    3.2K60

    开源配置管理中心apollo使用方法

    通过带缓存的Http接口从Apollo读取配置 该接口会从缓存获取配置,适合频率较高的配置拉取请求,如简单的每30秒轮询一次配置。...Http接口从Apollo读取配置 该接口会直接从数据获取配置,可以配合配置推送通知实现实时更新配置。...配置访问密钥 Apollo从1.6.0版本开始增加访问密钥机制,从而只有经过身份验证的客户端才能访问敏感配置。如果应用开启了访问密钥,客户端发出请求需要增加签名,否则无法获取配置。...另外,配置值从内存获取,所以不需要应用自己做缓存。...等优先级高于数据的配置 调整ApolloPortalDB配置 配置项统一存储ApolloPortalDB.ServerConfig表,也可以通过管理员工具 - 系统参数页面进行配置,无特殊说明则修改完一分钟实时生效

    2K10

    (很全面)SpringBoot 集成 Apollo 配置中心

    四、启动项目进行测试 . 1、测试是否能够获取 Apollo 设置的值 . 2、测试 Apollo 修改参数值后客户端是否能及时刷新 . 3、测试 Apollo 执行配置回滚操作客户端是否能及时改变.... 4、测试不能访问 Apollo 客户端的变化 . 5、测试 Apollo 中将参数删除后客户端的变化 ....客户端Apollo 配置中心服务端获取到应用的最新配置后,会保存在内存客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置。...4、测试不能访问 Apollo 客户端的变化 这里我们将 JVM 参数 Apollo 配置中心地址故意改错: -Dapollo.configService=http://192.168.2.100...考虑到由于 Apollo 会在本地将配置缓存一份,出现上面原因,估计是缓存生效。客户端不能连接到 Apollo 配置中心时候,默认使用本地缓存文件的配置。

    16.9K53

    Apollo基础架构的实践经验

    profile profile 是一个逻辑的分组, bean 向容器中注册的时候,仅配置激活生效。...3.2 客户端 ? 客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送。 客户端还会定时从 Apollo 配置中心服务端拉取应用的最新配置。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存 客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序从Apollo...客户端获取最新的配置、订阅配置更新通知 长连接实现上是使用的异步+轮询实现 4 Apollo 高可用部署 Apollo 架构说明我们提到过 client 和 portal 都是客户端负载均衡,根据...,Portal无影响 客户端重启,可以读取本地缓存配置文件 某台admin service下线 无影响 Admin service无状态,Portal重连其它admin service 所有admin

    1.7K10

    我们放弃了Nacos作为配置中心,转而选择了这款神器~

    1.6、本地缓存 Apollo客户端会把从服务端获取到的配置本地文件系统缓存一份,用于遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。...客户端Apollo 配置中心服务端获取到应用的最新配置后,会保存在内存客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置。...4.2、测试 Apollo 修改参数值后客户端是否能及时刷新 修改 Apollo 配置中心参数 test 值为 666666 ,然后再次发布。...4.4、测试不能访问 Apollo 客户端的变化 这里我们将 JVM 参数 Apollo 配置中心地址故意改错: -Dapollo.configService=http://192.168.2.100...考虑到由于 Apollo 会在本地将配置缓存一份,出现上面原因,估计是缓存生效。客户端不能连接到 Apollo 配置中心时候,默认使用本地缓存文件的配置。

    55110

    Apollo基础架构的实践经验

    profile profile 是一个逻辑的分组, bean 向容器中注册的时候,仅配置激活生效。...3.2 客户端 ? 客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送。 客户端还会定时从 Apollo 配置中心服务端拉取应用的最新配置。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存 客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序从Apollo...客户端获取最新的配置、订阅配置更新通知 长连接实现上是使用的异步+轮询实现 4 Apollo 高可用部署 Apollo 架构说明我们提到过 client 和 portal 都是客户端负载均衡,根据...,Portal无影响 客户端重启,可以读取本地缓存配置文件 某台admin service下线 无影响 Admin service无状态,Portal重连其它admin service 所有admin

    1.4K10

    怎样使用 apollo-link-state 管理本地数据

    Apollo Client 1.0 时期,这是一个可行的方案。但 Apollo Client 进入 2.0 版本,不再依赖于 Redux,如何去同步本地和远端的数据,变得比原来更加棘手。...查询应用状态,GraphQL query 也能以一种声明式的方式描述出组件所需要的数据。...Apollo Link 使得 Apollo Client 管理本地的数据成为可能,从一个 GraphQL 服务器获取数据,可以使用 HttpLink,而从 Apollo缓存请求数据,则需要使用一个新的...Defaults 前文的 defaults 字段是一个用于表示状态初始值的 object, state link 刚创建,这个默认值会被写入 Apollo Client 的缓存。...Resolvers 使用 Apollo Client 管理应用状态后,Apollo cache 成为了应用的单一数据源,包括了本地和远端的数据。那么我们应当如何查询和更新缓存数据呢?

    2.4K100

    Apollo,真香!

    6、本地缓存 Apollo客户端会把从服务端获取到的配置本地文件系统缓存一份,用于遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。...客户端Apollo 配置中心服务端获取到应用的最新配置后,会保存在内存客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置。...2、测试 Apollo 修改参数值后客户端是否能及时刷新 修改 Apollo 配置中心参数 test 值为 666666 ,然后再次发布。...4、测试不能访问 Apollo 客户端的变化 这里我们将 JVM 参数 Apollo 配置中心地址故意改错: -Dapollo.configService=http://192.168.2.100...考虑到由于 Apollo 会在本地将配置缓存一份,出现上面原因,估计是缓存生效。客户端不能连接到 Apollo 配置中心时候,默认使用本地缓存文件的配置。

    33810

    React 设计模式 0x6:数据获取

    它是同构的(即可以浏览器和 nodejs 中使用相同的代码库)。服务器端,它使用本地的 node.js http 模块,而在客户端(浏览器),它使用 XMLHttpRequests。...GraphQL 提供了 API 数据的完整且易于理解的描述,使客户端能够精确地请求所需的数据,避免了不必要的数据传输,使得 API 能够随着时间的推移更容易地发展,并提供了强大的开发者工具。...然而,组件重新渲染,这些数据并不总是需要重新计算或重新获取。有几种方法可以 React 实现数据缓存。...React 应用程序缓存数据并使用它的方法。...从 API 缓存数据可以存储我们的状态管理,然后我们的应用程序全局使用。尽管数据缓存,但在刷新页面,它将丢失数据,需要重新获取。

    1.2K20

    一图理解Apollo配置中心,配置变更如何及时通知客户端

    ---- Apollo 2.2.0-SNAPSHOT 配置变更及时通知客户端流程: 1、Apollo客户端启动,会启动异步线程,循环发起一个Http Long Polling请求到Config...如果在60秒内没有该客户端关心的配置发布,那么会返回Http状态码304给客户端。...变更通知时会根据key从缓存获取DeferredResult,设置值,让挂起的请求返回客户端,达到通知客户端的功能。...#sendMessage) 4、Config Service后台异步线程默认每秒扫描更新通知消息表,如果有配置发布动作,会从步骤2的DeferredResult缓存获取对应的DeferredResult...客户端返回的结果获取到配置变化的namespace后,会立即请求Config Service获取该namespace的最新配置。

    1.3K30

    Apollo配置中心使用篇

    客户端返回的结果获取到配置变化的namespace后,会立即请求Config Service获取该namespace的最新配置。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存 客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序可以从...服务配置中心新建项目时候,配置的appid一致 apollo.meta作用是:apollo客户端apollo-env.properties配置的configservice无法取得连接,会找apollo.meta...pro.meta=http://apollo.xxx.com 默认本地缓存路径 Apollo客户端会把从服务端获取到的配置本地文件系统缓存一份,用于遇到服务不可用,或网络不通的时候,依然能从本地恢复配置...自定义缓存路径 Apollo 1.0.0版本开始支持以下方式自定义缓存路径,按照优先级从高到底分别为: 通过Java System Property apollo.cacheDir Java程序启动脚本

    8.5K61

    【译】Graphql, gRPC和端对端类型检验

    GraphQL 听到我们需要在这个项目中“整合许多不同的数据源”,我立即意识到使用GraphQL作为API网关会是一个不错的选择。...只需要在我们的schema增加查询(queries)和变更(mutations)字段,就可以应用中使用(consuming)这些数据了。...使用apollo-client和react-apollo简化了前端代码对缓存数据的管理。 灵活的查询方式方便我们未来构建移动端以及内部应用。...我们所有的解析器(resolvers)都是遵循以下模式:从后端服务请求一些数据,可能会做轻量的数据转化工作,使得返回数据复合我们的schema。在这些解析器几乎木有业务逻辑。...然而,不像.jsx/.js之间那样宽松,文件包含任何JSX代码,你必须使用.tsx扩展名,这样TypeScript才能消除JSX和其他TypeScript语言特性之间的歧义。

    3.1K20

    Apollo(阿波罗)配置中心Java客户端使用指南使用指南

    Apollo客户端会把从服务端获取到的配置本地文件系统缓存一份,用于遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。...另外,配置值从内存获取,所以不需要应用自己做缓存。 3.1.2 监听配置变化事件 监听配置变化事件只应用真的关心配置变化,需要在配置变化时得到通知使用,比如:数据库连接串变化后需要重建连接等。...更多使用案例Demo可以参考Apollo使用场景和示例代码。 四、客户端设计 ? 上图简要描述了Apollo客户端的实现原理: 客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存 客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序可以从...Apollo客户端获取最新的配置、订阅配置更新通知 五、本地开发模式 Apollo客户端还支持本地开发模式,这个主要用于开发环境无法连接Apollo服务器的时候,比如在邮轮、飞机上做相关功能开发。

    12.5K20

    微服务架构-实现技术之具体实现工具与框架8:Spring Cloud Config原理与注意事项

    git、数据库等 无 支持 支持 变更管理 高 无,需要git、数据库等 无 无 无 本地配置缓存 高 无 无 支持 支持 配置更新策略 无 无 无 无 配置锁 支持 不支持 不支持 不支持...这样做的好处是,Git服务器故障或者网络请求异常,保证服务端仍然可以正常工作。...启用回退客户端适配器将“缓存”本地文件系统的计算属性。要启用回退功能,只需要指定存储缓存的位置即可。...,客户端高可用主要是解决服务端不可用的情况下,客户端仍然可以正常启动。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存 客户端会把从服务端获取到的配置本地文件系统缓存一份 遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序可以从

    67610

    通过Apollo和nacos的能力进行国际化热更新

    至此,主要是把apollo的一些界面操作做了一些铺垫,我们界面的操作,客户端会准实时的感知到,并且基于上文提到的监听,我们能按需进行一些操作。...,apollo更新之后,120秒之后,才会感知新的配置,读取新的message。...3.3 优化点·初始刷新静态文件 测试的过程,发现这种方式下存在一个小问题,就是apollo不触发刷新,本地的静态语言配置和apollo是不一致的,就算我们服务发布上线了,也只有本地文件的默认值,...所以我们需要在项目启动去初始更新apollo的配置到本地文件: @Override public void afterPropertiesSet() throws Exception { for...本质上和上文一样,更新的是缓存的properties。

    80610
    领券