2019年9月16日

GraphQL Java - Instrumentation

摘要: Instrumentation拦截器 通过实现Instrumentation接口,可以观察一个query的执行,或修改运行期的行为。 最常见的用途是进行性能监控,和自定义日志记录,但它也可以用于完成其他任务。 创建GraphQL对象时,可以绑定相关的Instrumentation实现。 自定义Ins 阅读全文

posted @ 2019-09-16 19:14 PKU_荐辕 阅读(923) 评论(0) 推荐(0) 编辑

GraphQL Java - Batching

摘要: 使用DataLoader 使用GraphQL的过程中,可能需要在一个图数据上做多次查询。使用原始的数据加载方式,很容易产生性能问题。 通过使用java dataloader,可以结合缓存(Cache)和批处理(Batching)的方式,在图形数据上发起批量请求。如果dataloader已经获取过相关 阅读全文

posted @ 2019-09-16 18:37 PKU_荐辕 阅读(1283) 评论(2) 推荐(0) 编辑

GraphQL Java - Scalars

摘要: GraphQL中的Scalar Scalar(原子类型) 在GraphQL类型系统中,类型树的叶子节点成为Scalar。一旦访问到了Scalar类型的数据,就无法在该类型基础上进一步访问其下的类型层次结构。Scalar类型意味着该类型的值无法再细分。 在GraphQL规范中,要求其所有实现都必须具有 阅读全文

posted @ 2019-09-16 16:42 PKU_荐辕 阅读(1135) 评论(0) 推荐(0) 编辑

GraphQL Java - Data Mapping

摘要: 映射数据 GraphQL将数据映射到相应类型上 GraphQL的核心思想,就是声明一种类型schema,并将它映射到运行时产生的数据上。 设计这些类型时,要充分考虑到类型与相应数据的映射方式。 例如,假设我们有如下类型: 可以在这个简单的schema上执行一些简单的查询: 然后,在Java代码中需要 阅读全文

posted @ 2019-09-16 16:04 PKU_荐辕 阅读(907) 评论(0) 推荐(0) 编辑

2019年9月12日

GraphQL Java - Execution

摘要: Query查询 在一个schema上执行查询,需要首先创建一个 对象,然后调用该对象的 方法 GraphQL在执行结束后返回一个 对象,其中包含查询的数据(data字段)或错误信息(errors字段)。 Data Fetcher 每个GraphQL中的field(字段)都会绑定一个DataFetch 阅读全文

posted @ 2019-09-12 16:33 PKU_荐辕 阅读(1656) 评论(0) 推荐(0) 编辑

2019年9月10日

GraphQL Java - Data Fetching

摘要: 一、graphql如何获取数据 每个graphql中定义的字段都有一个相关联的graphql.schema.DataFetcher。 有些字段使用自定义的data fetcher代码,用于访问数据库并从数据库中获取字段信息。而大多数字段仅使用字段名称,在内存中的Map对象或或普通的Java对象(PO 阅读全文

posted @ 2019-09-10 19:30 PKU_荐辕 阅读(2057) 评论(0) 推荐(0) 编辑

GraphQL Java - Schema

摘要: Schema 创建一个schema GraphQL API具有一个Schema,该Schema定义了可以Query(查询)或Mutation(变更)的每个字段以及这些字段的类型。 graphql java提供了两种不同的定义schema的方式:编程方式编写,和使用graphql dsl语法(也称为S 阅读全文

posted @ 2019-09-10 16:48 PKU_荐辕 阅读(2268) 评论(0) 推荐(0) 编辑

GraphQL Java-入门指南

摘要: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 基于node的服务 阅读全文

posted @ 2019-09-10 13:00 PKU_荐辕 阅读(4701) 评论(0) 推荐(1) 编辑

2018年3月11日

Disruptor框架中生产者、消费者的各种复杂依赖场景下的使用总结

摘要: 版权声明:原创作品,谢绝转载!否则将追究法律责任。 Disruptor是一个优秀的并发框架,可以实现单个或多个生产者生产消息,单个或多个消费者消息,且消费者之间可以存在消费消息的依赖关系。网上其他博客往往仅针对框架的一部分使用示例进行了介绍,对于某些场景下介绍并不完全:如多生产者间复杂的依赖关系的使 阅读全文

posted @ 2018-03-11 17:36 PKU_荐辕 阅读(14767) 评论(1) 推荐(3) 编辑

2018年3月9日

Disruptor中shutdown方法失效,及产生的不确定性源码分析

摘要: 版权声明:原创作品,谢绝转载!否则将追究法律责任。 Disruptor框架是一个优秀的并发框架,利用RingBuffer中的预分配内存实现内存的可重复利用,降低了GC的频率。 具体关于Disruptor的原理,参见:http://ifeve.com/disruptor/,本文不在赘述。 在Disru 阅读全文

posted @ 2018-03-09 13:23 PKU_荐辕 阅读(2259) 评论(0) 推荐(0) 编辑

导航