首页
学习
活动
专区
圈层
工具
发布

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

解决问题的基础 我们知道这个问题需要解决,现在让我们思考一下,如何正确地在 Apollo Client 中管理状态?...我们可以使用 GraphQL mutation 来表述应用状态的变化过程,而不是去发送某个 action。在查询应用状态时,GraphQL query 也能以一种声明式的方式描述出组件所需要的数据。...Resolvers 在使用 Apollo Client 管理应用状态后,Apollo cache 成为了应用的单一数据源,包括了本地和远端的数据。那么我们应当如何查询和更新缓存中的数据呢?...在下面的例子中,我们在同一条 query 内查询了 GraphQL 服务器中存储的 user 数据以及 Apollo cache 中的 visibilityFilter 数据。 ....以上代码使用 @client 指令查询 Apollo cache。 在我们 最新的文档页中,可以找到更多的例子,以及一些将 apollo-link-state 集成在应用中的小贴士。

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

    GraphQL最突出的架构优势是什么?

    作者 | Khalil Stemmler 策划 | 田晓旭 在服务器上使用 GraphQL 代替 REST 是有很多好处的,使用 Apollo Client 取代自己编写的数据获取逻辑也有很多优势。...Apollo-link-state(现已直接放入 Apollo Client 2 和 3 中)让开发人员可以编写几乎同时解决远程状态和本地状态的查询。远程状态(位于服务器上)感觉比之前近多了。...locally } } }`; 在主要用于获取远程资源的查询中,我们可以使用 @client 指令来引用要基于一个客户端模式从本地缓存中获取的属性。...我们可以在同一请求中完成这一操作,这很厉害。想想之前在 Redux 环境我们要执行的 spread 和 Object.assign() 操作的数量有多少,就可以对比出差异了。...API 客户端了解如何解决该请求的唯一方法是检查错误响应(指望错误消息描述了所需的信息,否则也没用)。

    3.1K20

    在 redux 应用中使用 GraphQL

    正如 Sashko Stubailo 指出的: 不幸的是,在 Redux 应用程序中异步加载服务器数据的模式还没有建立起来,并且经常需要使用外部帮助程序库,如 redux-saga。...您需要编写自定义代码来调用服务器接口,解释数据,对其进行规范化并将其插入到存储中 - 同时跟踪各种错误和加载状态。 在本教程中,您将学习如何通过 Apollo Client 来获取和管理数据。...快速的启动一个服务端环境 启动一个 redux 脚手架 增加一个 GraphQL 客户端 (Apollo Client) 使用 GraphQL 获取数据 获取更多的数据 接下来要做的 1....在该页您可以看到一个如下 GraphQL 界面: ? GraphiQL 允许您测试不同的查询,并立即看到从服务器获得的响应。...在我们的 GraphQL 服务器中,并没有定义如何获取 authors。

    2.6K10

    springcloud学习手册-市面主流分布式配置中心框架汇总

    2、同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等。...3、通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖 配置修改实时生效(热发布): 用户在Apollo修改完配置并发布后,客户端能实时(1...还有一些使用方如DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。...Service的服务信息,而不需要关心背后实际的服务注册和发现组件 Meta Server只是一个逻辑角色,在部署时和Config Service是在一个JVM进程中的 Eureka 基于Eureka...)都是通过client组件对server访问。

    1.5K50

    Apollo配置中心使用篇

    集群配置信息存在的意义在于:项目部署在不同的集群,使用不同的配置,如:windows和linux服务器集群存在路径差异。如果项目部署在不同的集群,仍然可以使用相同的配置,则没有必要创建集群。...三个逻辑角色部署在同一个JVM进程中 为什么注册中心选择Eureka,而不是zk或者etcd呢?...通过:管理员工具->系统参数,可以在apollo中配置部门信息。参数key:organizations,先查询,在修改、保存。...点击右上角的“管理员工具–》删除应用、集群…”,首先查询出要删除的项目,点击“删除应用” ---- 客户端操作 本节对应的官方文档链接 本节介绍一下普通的java项目如何集成apollo-java...所以:apollo配置中心要为项目增加集群,一定是项目在不同集群(机房)部署的时候配置不同。如果应用在不同的集群(机房)可以使用相同的配置,就没必要为项目添加集群。

    11.6K61

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

    1.1 配置的基本概念 配置是独立于程序的只读变量 同个应用在不同的配置有不同的行为 应用不应该改变配置 配置伴随应用的整个生命周期 初始化参数和运行参数 配置可以有多种加载方式 配置需要治理 权限控制...我们认为环境和代码无关,同一份代码部署在不同的环境就应该能够获取到不同环境的配置,所以环境默认是通过读取机器上的配置(server.properties中的env属性)指定的,不过为了开发方便,我们也支持运行时通过...对不同的cluster,同一个配置可以有不一样的值,如 zookeeper 地址。...客户端获取最新的配置、订阅配置更新通知 长连接实现上是使用的异步+轮询实现 4 Apollo 高可用部署 在 Apollo 架构说明中我们提到过 client 和 portal 都是在客户端负载均衡,根据...1 使用场景 服务自身的配置(如数据库、业务行为等配置) 2 如何使用私有类型 Namespace 一个应用下不同配置的分组,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,

    1.6K10

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

    我们认为环境和代码无关,同一份代码部署在不同的环境就应该能够获取到不同环境的配置,所以环境默认是通过读取机器上的配置(server.properties中的env属性)指定的,不过为了开发方便,我们也支持运行时通过...对不同的cluster,同一个配置可以有不一样的值,如 zookeeper 地址。...客户端获取最新的配置、订阅配置更新通知 长连接实现上是使用的异步+轮询实现 4 Apollo 高可用部署 在 Apollo 架构说明中我们提到过 client 和 portal 都是在客户端负载均衡,根据...1 使用场景 服务自身的配置(如数据库、业务行为等配置) 2 如何使用私有类型 Namespace 一个应用下不同配置的分组,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,...使用建议 基础框架部分的统一配置,如 DAL 的常用配置 基础架构的公共组件的配置,如监控,熔断等公共组件配置

    1.9K10

    Apollo中间件技术:从入门到精通

    同一份代码部署在不同的集群,可以有不同的配置,比如ZooKeeper的地址等。配置修改实时生效(热发布):用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。...五、Apollo的使用5.1 Apollo Portal的使用5.1.1 登录Apollo Portal在浏览器中访问Apollo Portal的地址。...5.2 Apollo Client的使用5.2.1 引入Apollo Client依赖在需要使用Apollo配置的应用中,引入Apollo Client的依赖。...解决方案包括检查Apollo服务器的启动状态、检查网络连接、检查Apollo Client的配置等。8.2 发布配置时出现问题可能的原因包括权限不足、配置格式错误、数据库连接问题等。...解决方案包括检查用户的权限、检查配置的格式、检查数据库的连接状态等。8.3 客户端无法获取最新配置可能的原因包括Apollo服务器未推送最新配置、客户端缓存未更新、客户端配置错误等。

    1.2K32

    Nacos概念和功能介绍,与Eureka&Apollo&Zookeeper的比较

    常用于不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。 服务注册中心:存储服务实例和服务负载均衡策略的数据库。通过服务名可以唯一确定其指代的服务。...不同的服务可以归类到同一分组。 服务发现:(通常使用服务名)对服务下的实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。...NacosSync除了单机部署,也提供了高可用的集群部署模式,NacosSync是无状态设计,将任务等状态数据迁移到了数据库,使得集群扩展非常方便 抽象出了Sync组件核心接口,通过注解对同步类型进行区分...Nacos Eureka Consul CoreDNS Zookeeper 一致性协议 CP+AP AP CP — CP 健康检查 TCP/HTTP/MYSQL/Client Beat Client Beat...+Kubernetes的组合,填补 2 者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护的成本。

    3.2K20

    干货 | 携程开源配置中心Apollo的设计与实现

    、集群配置管理 同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理 3) 框架类组件配置管理 还有一类比较特殊的配置 -...)、不同集群(cluster)、不同命名空间(namespace)的配置 2)同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等 3)通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置...,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配 4)对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制 部署简单...,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,rpc配置文件,应用自身的配置文件等 2)应用可以直接读取到公共组件的配置namespace,如DAL,RPC...Apollo Portal(管理界面) ConfigService和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳 在Eureka之上我们架了一层Meta

    3.8K110

    史上最全的Nacos 介绍和部署

    nacos还提供了统一的健康检查仪表盘,帮助您根据健康检查状态管理服务的可用性以及流量。...1.3 组件介绍 组件简介: 服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能 配置管理:实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能...容灾目录使用需要工具 启动模式:按照单机模式,配置模式,服务模式,dns模式,或者all模式,启动不同的程序+UI 一致性协议:解决不同数据,不同一致性要求情况下,不同一致性机制 存储模块:解决数据持久化...+Kubernetes的组合,填补 2 者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护的成本。...3.2 注册中心的原理 服务实例在启动时注册到服务注册表,并在关闭时注销 服务消费者查询服务注册表,获得可用实例 服务注册中心需要调用服务实例的健康检查API来验证它是否能够处理请求 服务注册成功后

    91010

    微服务中集成分布式配置中心 Apollo

    在之前的文章中,我们介绍过 Spring Cloud 中的分布式配置中心组件:Spring Cloud Config。本文将会介绍功能更为强大的 Apollo。...对不同的cluster,同一个配置可以有不一样的值,如zookeeper地址。...namespace (命名空间):一个应用下不同配置的分组,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,RPC配置文件,应用自身的配置文件等;应用可以直接读取到公共组件的配置...三个逻辑角色部署在同一个JVM进程中 ConfigService、AdminService、Portal 属于 Apollo 服务端的模块,其中提到的 Eureka 是为了保证高可用,Config 和...Admin 都是无状态以集群方式部署的,Client 怎么找到 Config?

    1.6K30

    微服务中集成分布式配置中心 Apollo

    在之前的文章中,我们介绍过 Spring Cloud 中的分布式配置中心组件:Spring Cloud Config。本文将会介绍功能更为强大的 Apollo。...对不同的cluster,同一个配置可以有不一样的值,如zookeeper地址。...namespace (命名空间):一个应用下不同配置的分组,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,RPC配置文件,应用自身的配置文件等;应用可以直接读取到公共组件的配置...三个逻辑角色部署在同一个JVM进程中 ConfigService、AdminService、Portal 属于 Apollo 服务端的模块,其中提到的 Eureka 是为了保证高可用,Config 和...Admin 都是无状态以集群方式部署的,Client 怎么找到 Config?

    1.1K20

    Nacos 和 Apollo ,哪个更好?

    举个例子,在Apollo中,创建一个DEV环境的配置和一个PRO环境的配置,完全是两个独立的配置项,互不影响。而在Nacos中,你可能需要在不同的Namespace中分别创建。...Nacos的服务发现功能非常强大,支持健康检查、临时/持久实例、权重路由、监听查询等,完全可以替代Eureka或Consul。...我们曾做过压测,单台Nacos Server在8核16G配置下,可以稳定支撑5000+客户端的长轮询连接。 Apollo的ConfigService也是无状态的,扩展性很好。...监控告警:Nacos自带了简易的监控页面,可以查看集群状态、健康检查等。Apollo也有监控,但需要整合到企业监控系统。...这种方案虽然增加了组件,但可以发挥各自优势,适合大型项目。 09 如何实现配置动态刷新? 最后,给出一个示例,展示在两种框架下如何实现配置的动态刷新。

    11910

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

    我们还可以在 playground 上测试带变量的查询。 在查询名的后面,你可以通过使用前缀为$及类型去指定变量,然后在查询体中,你可以使用该变量。...初始化Apollo客户端 在 src/index.tsx 中,我们需要初始化 Apollo 客户端并用 ApolloProvider 组件将 client 添加到 React 的上下文中。...查询钩子返回 data,loading 和 error 的值。我们将在容器组件中检查 loading 和 error,并将 data 传递给表示组件。...我们将用这个组件作为智能组件来保持关注点的分离,并且将数据传给只显示给定内容的表示组件。我们还将在等待数据时显示基本的加载和错误状态。...在 src/App.tsx 中,我们将添加 useState 来维护和更新 ID 的状态。

    3.7K20

    【百度Apollo】探索自动驾驶:Apollo 平台发布新版本 Beta 更灵活的包管理 2.0

    开发者可以按照不同的使用场景(不同的车或者不同的区域场景)来管理配置,并且在开发调试过程中可以快速切换; 将参数按全局和局部划分(全局参数是多个算法或插件中共同使用的参数,局部变量是专属于某个算法或插件的参数...*Apollo 插件机制是一个比组件更加轻量化的动态加载机制,其目的是让开发者可以更加聚焦到功能逻辑上,更加方便地进行功能扩展。...改用cyber中service-client机制调用。 用户可以通过client查询当前任务的执行状态。...新的接口可以通过client获取命令执行的状态,包括正在执行中,已经完成和有错误发生。 新的接口支持开发者自定义扩展自己的命令。...1.功能组件拆分 针对感知,Apollo新版本Beta从功能层面将激光雷达、相机目标检测和红绿灯检测拆分为小的功能组件,每个组件功能更加内聚,开发者可以灵活的组合和定制不同的算法流程,来满足当前场景的需求

    35300

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

    开头;多个匹配到同一uri的pattern用逗号分割 local 仓库的的pattern也会自动补全为local*/* test仓库中的 pattern 是以通配符开始的,需要使用单引号 4.子目录存储...Config Client,当Config Client接收到消息后重新发送请求加载配置消息。...具体实现上,仍然需要创建一个二方包,在二方包中引入spring-cloud-config-client,并且配置属性加载类,创建配置类命名为ConfigSupportConfiguration(主要是用于判断远程加载信息是否可用...的配置;同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等;通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖 配置修改实时生效...对于有些使用方,它们的配置可能会有比较复杂的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。

    85710
    领券