我的开发技术栈

工具类 IDE Goland VScode Sublime 部署 coreos docker k8s 代码质量检查 sonar cloud gometalinter 依赖管理 dep 构建 make 代码仓库 GitHub bitbucket CI Travis 框架 MQ NSQ API »

GraphQL使用总结

GraphQL是Facebook提出的一种数据查询规范,是一种用于描述CS应用中数据模型的能力和要求的语言。通过GraphQL可以使服务端仅通过一个API就可以满足所有的数据查询/修改需要,也允许客户端在不经过服务端允许的情况下,自由设定返回的数据。 与Restf API的区别 根据我的使用经验来说,90%的Restful API适应场景都可以被GraphQL所替代。 我们先说那10%不能替代的场景。 需要上传/下载文件的场景 如果有的场景通过Restful API来接受文件或者提供文件下载。 那么GraphQL无法满足。 因为GraphQL规定所有的数据都是通过body以json格式进行数据传输。 因此需要传输二进制数据的场合,GraphQL无法满足。 当然这不是最终结论,如果真要通过GraphQL满足这个场景,也可以将二进制数据进行Decode,然后作为字符串传输给对方。 »

Golang实现http重定向https的方式

以前写代码时,都是直接将程序绑定到唯一端口提供http/https服务,在外层通过反向代理(nginx/caddy)来实现http和https的切换。随着上线后的服务越来越多,有一些服务无法直接通过反向代理来提供这种重定向,只能依靠代码自己实现。所以简要记录一下如何在代码中实现http到https的重定向。 分析 无论是反向代理还是代码自己实现,问题的本质都是判断请求是否是https请求。 如果是则直接处理,如果不是,则修改请求中的url地址,同时返回客户端一个重定向状态码(301/302/303/307)。但如果仔细分析的话,会衍生出另外的问题,返回哪个重定向码是合理的? 这个问题展开讨论, »

Glow使用小结 - 统计Key出现的次数

Glow是一个基于golang的分布式大数据计算框架。 由Chris Lu开发维护,这个哥们应该是属于"大神"一级的,至少他写的东西star数基本都在K一级。做开发做到这个份儿,也算是值了。 和Glow属于姊妹框架的是Gleam,据作者说这个框架更高效,更简洁。 我还没有接触Gleam,等哪天接触到了,再写写Gleam使用小结。 背景 下面说一下使用Glow准备要做什么事情。 作为一个bigdata的新人,入手课程基本都是world count。 Glow也有一个world count的example,这个example是用来统计一共出现了多少个单词作为熟悉工具,这些代码基本够用了。但此时手边正好有一个需求,需要统计Nginx »

CoreOS如何初始化SSH设置

腾讯云的coreos版本号比较低,为717.3.0,而且相当长一段时间内,从来没有升级过系统版本。 腾讯云的717.3.0的coreos启动之后,如果不修改ssh设置,那么等到update-engine.service完成自动更新之后,当前用户就无法再使用口令登录系统了。 因此购买腾讯云的coreos之后,第一件事情就是修改ssh设置。 首先创建下面的文件: cloud-config.yaml #cloud-config users: - name: user ssh_authorized_keys: »