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

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

解决问题的基础 我们知道这个问题需要解决,现在让我们思考一下,如何正确地在 Apollo Client 中管理状态?...Apollo Link 使得在 Apollo Client 中管理本地的数据成为可能,从一个 GraphQL 服务器中获取数据,可以使用 HttpLink,而 Apollo缓存中请求数据,则需要使用一个新的...以上代码是使用 apollo-link-state 初始化 Apollo Client。...Defaults 前文的 defaults 字段是一个用于表示状态初始值的 object,当 state link 刚创建,这个默认值会被写入 Apollo Client缓存。...Resolvers 在使用 Apollo Client 管理应用状态后,Apollo cache 成为了应用的单一数据源,包括了本地和远端的数据。那么我们应当如何查询和更新缓存中的数据呢?

2.3K100
您找到你想要的搜索结果了吗?
是的
没有找到

Apollo配置中心使用篇

Git保证数据一致性,Config-ServerGit读取数据 数据库模拟消息队列,Apollo定时读消息 HTTP异步通知 选择哪一个配置中心呢?...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中 客户端会把服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序可以...uat.meta=http://apollo.uat.xxx.com pro.meta=http://apollo.xxx.com 默认本地缓存路径 Apollo客户端会把服务端获取到的配置在本地文件系统缓存一份...比如:数据库连接配置,在应用启动的时候会自动根据数据库配置初始化一个数据库连接池,连接池中保存着n个激活的数据库连接,以供业务持久化操作调用。...第二类是业务运行所需的数据,比如:新建用户的默认密码,重置用户的默认密码。这一类的配置发生变更修改的就是配置数据本身,它不去影响程序的其他对象,不产生其他的连锁反应。

7.9K61

spring boot 启动过程看apollo初始化过程( 二)

之前一篇文章《apollo初始化看spring boot 1.5.3启动过程( 一)》 说到而apollo初始化逻辑便放在这里面,本文就继续从此展开 ?...而我们的应用程序是apollo 的客户端client中去获取通知 ? 上面说的远端获取配置,那么如何远端获取呢? 根据 ?...我们知道clientSLB中发现metaServer,进而读取Config Service的 配置信息, 即和域名系统配合,协助Client访问MetaServer获取ConfigService地址列表...在 com/ctrip/framework/apollo/internals/ConfigServiceLocator.java 中,类初始化后, #1、执行initialize这个方法 ?...简而言之,就是通过两条线路来访问数据,保证了服务上线后,我们可通过portal热更新数据,来改变应用读到的配置信息。

1.1K10

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

通过带缓存的Http接口Apollo读取配置 该接口会从缓存中获取配置,适合频率较高的配置拉取请求,如简单的每30秒轮询一次配置。...Http接口Apollo读取配置 该接口会直接数据库中获取配置,可以配合配置推送通知实现实时更新配置。...初始化 首先需要确定哪些namespace需要配置更新推送,Apollo的实现方式是程序第一次获取某个namespace的配置就会来注册一下,我们就知道有哪些namespace需要配置更新推送了。...客户端项目可以在Apollo “application” Namespace上配置一些配置项。在初始化service的时候,Apollo上读取配置即可。...,另外如果是为已经运行了一段时间的Apollo配置中心增加环境,别忘了参考2.1.2.4 别的环境导入ApolloConfigDB的项目数据对新的环境做初始化

1.8K10

Apollo在基础架构中的实践经验

配置中心通知Apollo客户端有配置更新 Apollo客户端配置中心拉取最新的配置、更新本地配置并通知到应用 ?...客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送。 客户端还会定时 Apollo 配置中心服务端拉取应用的最新配置。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中 客户端会把服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序Apollo...无影响 多数据中心部署,数据完全同步,Meta Server/Portal域名通过slb自动切换到其它存活的数据中心 5 Apollo 使用说明 5.2 最佳实践 在 Spring Boot...重新生成的过程很简单,清除 refreshscope 缓存幷销毁 Bean,下次就会重新 BeanFactory 获取一个新的实例(该实例使用新的配置)。

1.6K10

apollo客户端通知原理

= null) { Tracer.logEvent(String.format("Apollo.Client.Configs....的 github 文档中有介绍: 1.客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送 2.客户端还会定时Apollo配置中心拉取应用的最新配置 这是一个fallback...3.客户端Apollo配置中心获取应用的最新配置后,会保存在内存中 4.客户端会把服务端获取到的配置在本地缓存一份 遇到服务不可用,或网络不通,依然能从本地恢复配置 5应用程序可以...基于前一小结,如果用户发布了属性变更,RemoteConfigRepository的定时刷新或长轮询逻辑会Apollo Server拉取最新数据到本地,然后和本地缓存(上一个版本数据)做对比,如果发现不一样则触发配置变更...在网上找到了Apollo作者对该问题的解答 为什么不使用消息系统?太复杂,杀鸡用牛刀。 为什么不用 TCP 长连接?对网络环境要求高,容易推送失败。且有双写问题。 为什么使用 HTTP 长轮询?

3.1K60

一个牛逼的 多级缓存 实现方案!

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑 使 Jedis...“统一配置”能力; 基本流程 1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client 会询问 Hermes-SDK 该 key 当前是否是...,Hermes-SDK 会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client 的每次 key 值访问请求,Hermes-SDK...,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址…) 稳定性 TMC 本地缓存稳定性表现在以下方面: 数据上报异步化:Hermes-SDK 使用 rsyslog...: Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效,Hermes-SDK 同步失效本地缓存,保证

53920

Apollo在基础架构中的实践经验

微服务配置中心 Apollo 使用指南,以下文档根据 apollo wiki 整理而来,部分最佳实践说明和代码改造基于笔者的工作经验整理而来,如有问题欢迎沟通。...客户端和服务端保持了一个长连接,从而能第一间获得配置更新的推送。 客户端还会定时 Apollo 配置中心服务端拉取应用的最新配置。...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中 客户端会把服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序Apollo...无影响 多数据中心部署,数据完全同步,Meta Server/Portal域名通过slb自动切换到其它存活的数据中心 5 Apollo 使用说明 5.1 使用说明 Apollo使用指南 https...重新生成的过程很简单,清除 refreshscope 缓存幷销毁 Bean,下次就会重新 BeanFactory 获取一个新的实例(该实例使用新的配置)。

1.3K10

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

Apollo客户端会把服务端获取到的配置在本地文件系统缓存一份,用于在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。...,如果应用在所有config service都挂掉的情况下需要扩容,那么也可以先把配置已有机器上的缓存路径复制到新机器上的相同缓存路径 1.2.4 可选设置 1.2.4.1 Environment...另外,配置值内存中获取,所以不需要应用自己做缓存。 3.1.2 监听配置变化事件 监听配置变化事件只在应用真的关心配置变化,需要在配置变化时得到通知使用,比如:数据库连接串变化后需要重建连接等。...= application,FX.apollo,application.yml 将Apollo配置加载提到初始化日志系统之前(1.2.0+) 1.2.0版本开始,如果希望把日志相关的配置(如logging.level.root...客户端Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中 客户端会把服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置 应用程序可以

11.4K20

Apollo 源码解析 —— Client 轮询配置

概述 老艿艿:本系列假定胖友已经阅读过 《Apollo 官方 wiki 文档》 。 本文分享 Client 如何通过轮询的方式, Config Service 读取配置。...聊天内容如下,非常感谢: 老艿艿: https://github.com/ctripcorp/apollo/issues/652 看这个 issue 问了 问题:非常感谢。...老艿艿: 目前代码看下来,长轮询发起,同时只会有一个,应该不会同时两个通知呀。 现在 client 是一个长轮询+定时轮询,是不是这两个会有互相的影响。...主要用于 LocalFileConfigRepository , Config Service 读取配置,缓存在本地文件。...调用 #trySync() 方法,尝试同步配置,作为初次的配置缓存初始化。 调用 #schedulePeriodicRefresh() 方法,初始化定时刷新配置的任务。

2.5K40

如何高效地玩转多级缓存

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑,使 Jedis...”能力; 基本流程 1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client 会询问 Hermes-SDK 该 key 当前是否是 热点key...会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client 的每次 key 值访问请求,Hermes-SDK 都会通过其...,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址...); 稳定性 TMC 本地缓存稳定性表现在以下方面: 数据上报异步化:Hermes-SDK 使用...Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效,Hermes-SDK 同步失效本地缓存,保证

84120

实现多级缓存的架构设计方案

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑。...,为 TMC 提供“集群推送”和“统一配置”能力; - 基本流程 - (1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client...,从而将访问请求前置在应用层; 对于非 热点key ,Hermes-SDK 会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client...在启动及运行过程中,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址…) - 稳定性 - TMC 本地缓存稳定性表现在以下方面: 数据上报异步化...: Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效,Hermes-SDK 同步失效本地缓存

55410

多级缓存实现方案

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑,使 Jedis...”能力; 基本流程 1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client 会询问 Hermes-SDK 该 key 当前是否是 热点key...会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client 的每次 key 值访问请求,Hermes-SDK 都会通过其...,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址…); 稳定性 TMC 本地缓存稳定性表现在以下方面: 数据上报异步化:Hermes-SDK 使用 rsyslog...Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效,Hermes-SDK 同步失效本地缓存,保证

2K40

如何高效地玩转多级缓存

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑,使 Jedis...”能力; 基本流程 1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client 会询问 Hermes-SDK 该 key 当前是否是 热点key...会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client 的每次 key 值访问请求,Hermes-SDK 都会通过其...,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址...); 稳定性 TMC 本地缓存稳定性表现在以下方面: 数据上报异步化:Hermes-SDK 使用...Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效,Hermes-SDK 同步失效本地缓存,保证

67220

有赞多级缓存解决方案怎么做的,你知道吗?

TMC 对原生 jedis 包的 JedisPool和 Jedis类做了改造,在 JedisPool 初始化过程中集成 TMC“热点发现”+“本地缓存”功能 Hermes-SDK包的初始化逻辑,使 Jedis...基本流程 1)key 值获取 Java 应用调用 Jedis-Client 接口获取 key 的缓存,Jedis-Client 会询问 Hermes-SDK 该 key 当前是否是 热点key; 对于...会通过 Callable回调 Jedis-Client 的原生接口, 缓存集群 拿到 value 值; 对于 Jedis-Client 的每次 key 值访问请求,Hermes-SDK 都会通过其...,会 Apollo 配置中心 读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd 地址...); 3-2-3....一致性 TMC 本地缓存一致性表现在以下方面: Hermes-SDK 的 热点模块 仅缓存 热点 key 数据,绝大多数非热点 key数据缓存集群 存储; 热点 key 变更导致 value 失效

1.8K20

初探Apollo远程服务配置中心

,开源地址:https://github.com/ctripcorp/apollo1.1 Apollo特性正是基于配置的特殊性,所以Apollo设计之初就立志于成为一个有治理能力的配置发布平台,目前提供了以下的特性...所有的操作都有审计日志,可以方便地追踪问题客户端配置信息监控可以在界面上方便地看到配置在被哪些实例使用提供Java和.Net原生客户端提供了Java和.Net的原生客户端,方便应用集成支持Spring...= nil {fmt.Println("初始化Apollo失败")} else {fmt.Println("初始化Apollo配置成功")}//Use your apollo key to testcache... apollo-client-config-data 1.9.0</dependency...=56ffb5eb1f6c4aba9ab008508a123650# 集群名称,不填为默认apollo.cluster=# 开启缓存apollo.property.names.cache.enable=

33020

用TS+GraphQL查询SpaceX火箭发射数据

GraphQL API 需要强类型化,数据单个端点提供。通过在此端点上调用 GET 请求,客户端可以接收后端的完全自我描述的数据,包括所有可用的数据和相应的类型。...apollo-boost 包含了查询 API 和在内存中缓存数据所需的工具, react-apollo 为React提供绑定, react-apollo-hooks 在 React Hook 中包装了...在使用 REST API ,我们所能找的的文档有可能不是最新的。如果 REST 出现什么问题,我们需要用 console.log 配合来调试数据。...为了更好地理解可用于 LaunchRocket 的字段,你可以通过侧面的模式导航器来了解可用数据。 现在将此查询转移到我们的程序。...初始化Apollo客户端 在 src/index.tsx 中,我们需要初始化 Apollo 客户端并用 ApolloProvider 组件将 client 添加到 React 的上下文中。

3K20
领券