摘要:
etcd介绍 etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。 类似项目有zookeeper和consul。 etcd具有以下特点: 完全复制:集群中的每个节点都可以使用完整的存档 高可用性:Etcd可用于避免硬件的单点故障或网络 阅读全文
posted @ 2020-04-05 23:20
__Invoker
阅读(83)
评论(0)
推荐(0)
摘要:
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展等特点。本文介绍了如何使用Go语言发送和接收kafka消息。 sarama Go语言中连接kafka使用第三方库:github.com/Shopify/sarama 阅读全文
posted @ 2020-04-05 23:19
__Invoker
阅读(78)
评论(0)
推荐(0)
摘要:
NSQ介绍 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异。 NSQ的优势有以下优势: NSQ提倡分布式和分散的拓扑,没有单点故障,支持容错和高可用性,并提供可靠的消息交付保证 NSQ支持横向扩展,没有任何集中式代理。 NSQ易于配置和部署,并且内置了管理界面。 NSQ的应用 阅读全文
posted @ 2020-04-05 23:13
__Invoker
阅读(4)
评论(0)
推荐(0)
摘要:
mongoDB介绍 mongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 mongoDB中将一条数据存储为一个文档(document),数据结构由键值(key-value)对组成。 阅读全文
posted @ 2020-04-05 23:11
__Invoker
阅读(107)
评论(0)
推荐(0)
摘要:
Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。 Redis支持的数 阅读全文
posted @ 2020-04-05 23:10
__Invoker
阅读(86)
评论(0)
推荐(0)
摘要:
在项目中我们通常可能会使用database/sql连接MySQL数据库。sqlx可以认为是Go语言内置database/sql的超集,它在优秀的内置database/sql基础上提供了一组扩展。这些扩展中除了大家常用来查询的Get(dest interface{}, ...) error和Selec 阅读全文
posted @ 2020-04-05 23:08
__Invoker
阅读(898)
评论(0)
推荐(0)
摘要:
连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。 我们常用的数据库基本上都有完整的第三方实现。例如:MySQL驱动 下载依赖 go get -u github.com/g 阅读全文
posted @ 2020-04-05 23:07
__Invoker
阅读(66)
评论(0)
推荐(0)
摘要:
Go语言中的json包在序列化空接口存放的数字类型(整型、浮点型等)都序列化成float64类型。 我们构造一个结构体如下: type s struct { data map[string]interface{} } json序列化的问题 func jsonDemo() { var s1 = s{ 阅读全文
posted @ 2020-04-05 23:03
__Invoker
阅读(72)
评论(0)
推荐(0)
摘要:
go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。到今天Go1.14版本推出之后Go modules 功能已经被正式推荐在生产环境下使用了。 这几天已经有很多教程讲解如何使用go module,以及如何使用g 阅读全文
posted @ 2020-04-05 23:02
__Invoker
阅读(58)
评论(0)
推荐(0)
摘要:
依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? godep Go语言从v1.5开始开始引入vendor模式,如果项目目录下有vendor目录,那 阅读全文
posted @ 2020-04-05 23:00
__Invoker
阅读(150)
评论(0)
推荐(0)
摘要:
由于某些不可抗力的原因,国内使用go get命令安装包时会经常会出现timeout的问题。本文介绍几个常用的解决办法。 从github克隆 golang在github上建立了一个镜像库,如https://github.com/golang/net就对应是 https://golang.org/x/n 阅读全文
posted @ 2020-04-05 22:58
__Invoker
阅读(62)
评论(0)
推荐(0)
摘要:
Air能够实时监听项目的代码文件,在代码发生变更之后自动重新编译并执行,大大提高gin框架项目的开发效率。 为什么需要实时加载? 之前使用Python编写Web项目的时候,常见的Flask或Django框架都是支持实时加载的,你修改了项目代码之后,程序能够自动重新加载并执行(live-reload) 阅读全文
posted @ 2020-04-05 22:56
__Invoker
阅读(200)
评论(0)
推荐(0)
摘要:
JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。 什么是JWT? JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式, 阅读全文
posted @ 2020-04-05 22:55
__Invoker
阅读(95)
评论(0)
推荐(0)
摘要:
Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 Gin框架介绍 Go世界里最流行的Web框架,Github上有32K+star。 基于httprou 阅读全文
posted @ 2020-04-05 22:53
__Invoker
阅读(64)
评论(0)
推荐(0)
摘要:
html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容。它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/template这个包。 模板与渲染 在一些前后端不分离的Web架构中,我们通常需要在后端将一些数据渲染到HT 阅读全文
posted @ 2020-04-05 22:51
__Invoker
阅读(101)
评论(0)
推荐(0)
摘要:
在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的t 阅读全文
posted @ 2020-04-05 22:48
__Invoker
阅读(56)
评论(0)
推荐(0)
摘要:
Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现。 HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网 阅读全文
posted @ 2020-04-05 22:46
__Invoker
阅读(99)
评论(0)
推荐(0)
摘要:
Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。 strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itia()、parse系列、format系列、append系列。 更多函数请查看官方文档。 string与int类型 阅读全文
posted @ 2020-04-05 22:34
__Invoker
阅读(35)
评论(0)
推荐(0)
摘要:
打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。 package main import ( "fmt" "os" ) func main() { // 只读方式打开当前目录下的main.go文件 file, 阅读全文
posted @ 2020-04-05 22:33
__Invoker
阅读(80)
评论(0)
推荐(0)
摘要:
log Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fat 阅读全文
posted @ 2020-04-05 21:26
__Invoker
阅读(46)
评论(0)
推荐(0)