apollo

Accessing Request object in Apollo Server with ExpressJS

蓝咒 提交于 2019-12-02 09:37:26
Is there any way of accessing the request object from the underlying express app in Apollo Server The context configuration parameter can be either an object, a function that returns the object, or a function that returns a promise to return the object. This function would get the HTTP request as a parameter, and could be defined like so: const apolloServer = new ApolloServer({ schema, context: async ({ req }) => { const something = getSomething(req) return { something } }, }) apolloServer.applyMiddleware({ app, path: '/graphql' }) const { appPort } = serviceFunc.getAccessData() app.listen({

SpringCloud之Nacos服务发现(十五)

限于喜欢 提交于 2019-12-02 07:08:49
一 Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。 Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。 动态配置管理 动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。 动态DNS服务 Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。 服务和元数据管理 Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计。 1.1 Nacos总体概况 1.2 Nacos架构 image.png 二、注册中心与配置中心横向对比 2.1 Nacos与eureka注册中心对比 对比项目\注册中心 Spring Cloud Nacos Spring Cloud Eureka CAP模型 支持AP和CP模型 AP模型 客户端更新服务信息 使用注册+DNS-f

Apollo GraphQl Storing derived data

六眼飞鱼酱① 提交于 2019-12-02 05:38:34
Some context : I'm developing a React JS app that reads geographic points out of a database and graphs/maps them in various ways. There are raw maps and plots that just show data straight from the database but there are also plots and metrics that involve analysis on the points like slope plot, area under graph, histograms, Euclidean distance etc. I have a GraphQL client set up to feed me data to my react app with Apollo-Client installed. Here's a sample of the GraphQL response: { "data": { "Points": [ { "pid": 13196, "x": 251.88491821289062, "y": 374.1650085449219 }, { "pid": 13197, "x": 257

How to pass root parameters in the resolver function of a nested query?

六眼飞鱼酱① 提交于 2019-12-02 02:47:18
I have a query of the following nature Category1(name: $cat1){ Category2(secondName: $cat2){ secondName }} My schema is like so: const Query = new GraphQLObjectType({ name: 'Query', fields: { Category1: { type: new GraphQLList(Category1Type), args: { name }, resolve: resolveCategory1 }} }) And then the Category1Type is defined as: const Category1Type = new GraphQLObjectType({ name: 'Category1', description: '<>', fields: () => ({ name: { type: GraphQLString }, category2: { type: new GraphQLList(CategoryType2), args: { secondName }, resolve: resolveCategory2 } }) }); For simplicity sake, assume

搭建IM服务 so easy

谁说我不能喝 提交于 2019-12-02 00:40:47
现在很多网站、APP都通过IM服务来实现消息推送及数据即时同步功能,即时通讯组件逐渐成为产品的标配。目前国内有很多成熟稳定的第三方即时通讯服务厂家,比如: 融云 。使用这些专业的服务可以提高开发效率而且服务稳定有保障。 如果自己DIY或者需要在封闭的局域网内使用IM服务,该怎么办呢?下文就简单介绍一下 EasyPM 曾经实践过的自行搭建IM服务过程。 数据同步方式 实现数据同步,有"推"、"拉" 两种思路,具体有以下几种方式: 使用HTTP轮循方式 说明:定时向HTTP服务端接口(Web Service API)获取最新消息,可结合ajax技术实现页面无刷新效果,这是主动拉取消息的机制。 优点:实现简单、可控性强、部署成本低 缺点:实时性差,增加服务端负载 使用XMPP协议 说明:XMPP是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它促进在服务器之间的准即时操作,其前身是Jabber,是一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。 优点:协议成熟、强大、可扩展性强、目前主要应用于众多IM系统 缺点:协议比较复杂、冗余(基于XML)、费流量 使用MQTT协议 说明:MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议

001-apollo的安装

左心房为你撑大大i 提交于 2019-12-01 22:27:53
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring环境也有较好的支持。.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境,而且已经支持.NET Core。 官网: https://github.com/ctripcorp/apollo Wiki: https://github.com/ctripcorp/apollo/wiki (一切的集成方式和使用方法都在这里) Issues: https://github.com/ctripcorp/apollo/issues (如果期间有任何问题,请通过这里查找大部分解决方法) 说明:官方提供了分布式部署方案,但是基于本地开发和调试上一般是单机部署的比较多。且提供的Quick Start方案跑不起来。所以下面将针对单机搭建上做详细的实践,用作开发环境。 注意:如果是生产环境一定要使用分布式部署方案来做高可用集群。 下载Release版本: https://github.com/ctripcorp/apollo

updateQueries after GraphQL mutation not working with the Apollo client

旧巷老猫 提交于 2019-12-01 20:25:51
After I'm sending a createMessage mutation in my app, I want to update the local ApolloStore using updateQueries . My setup looks as follows: const ChatWithAllMessages = graphql(allMessages, {name: 'allMessagesQuery'})(Chat) export default graphql(createMessage, { props({ownProps, mutate}) { return { createMessageMutation(text, conversationId) { return mutate({ variables: { text, conversationId }, updateQueries: { allConversations: (previousState, {mutationResult}) => { console.log('Chat - did send mutation for allConversationsQuery: ', previousState, mutationResult) return ... } } }) } } } })

dubbo+apollo微服务开发指南

一曲冷凌霜 提交于 2019-12-01 16:01:37
为了大家比较快速的开发微服务,规范dubbo,spring,mybatis,hessian,netty的版本和用法,我写了一个demo,下面对demo的功能做个简单的介绍,如有疑问的地方,可以私下问我 。 微服务项目示例 整合了dubbo2.5.11+spring 4.3.10+mybatis3.4.6+sharding-jdbc1.5.4.1(分库分表客户端)+apollo(集中配置) 包括微服务的rpc调用,数据库的增删改查,分布式集群唯一命名,分布式id生成,数据分布算法(hash一致性+pre-shard) 快速入门 下载源码 源码你可以从url获取: https://github.com/HowardYi/MicroServiceDemo ; 里面有一个spring-sharding-jdbc-example-mybatis-oracle子项目,大家导入maven项目即可 准备环境 注意能访问到apollo 服务地址,oracle服务地址,zk服务地址,地址信息在配置文件中。需要自己打通这些服务依赖。 运行测试 MainProvider.java可以测试分库分表下的增删改查,主键和非主键路由算法测试,hint方式路由测试,分页排序功能测试,多表并发查询结果归并测试。 启动后提供dubbo服务,供下面MainProviderGateway.java应用调用

Apollo GraphQL query in service duplicates collection items?

断了今生、忘了曾经 提交于 2019-12-01 10:39:14
问题 I have the following method in a service within my Angular 6 app; public getPupilReport(): Observable<PupilReport> { return this.apollo.query<any>({ query: gql` query query { pupilReports { new { date pupilReportTemplateId pupilReportTemplate { id name sortedPupilAttributeCollections { sortOrder pupilAttributeCollection { id name sortedPupilAttributes { sortOrder pupilAttribute { id name type } } } } } } } }`, }) .pipe(map(result => { var pupilReport = new PupilReport(); if (result && result

nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较

亡梦爱人 提交于 2019-12-01 10:18:24
nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较 12019.07.12 12:45:02字数 1394阅读 3983 一、Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。 Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。 动态配置管理 动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。 动态DNS服务 Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。 服务和元数据管理 Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计。 1.1 Nacos总体概况 image.png 1.2 Nacos架构 image.png 二、注册中心与配置中心横向对比 2.1 Nacos与eureka注册中心对比 对比项目\注册中心