09 2017 档案
摘要:Context 使用原则 1、不要把Context放在结构体中,要以参数的方式传递 2、以Context作为参数的函数方法,应该把Context作为第一个参数,放在第一位。 3、给一个函数方法传递Context的时候,不要传递nil,如果不知道传递什么,就使用context.TODO 4、Conte
阅读全文
摘要:etcd介绍 GitHub:https://github.com/coreos/etcd 官网:https://coreos.com/etcd/ 下载:https://github.com/coreos/etcd/releases/ 概念:高可用的分布式key-value存储,可以用于配置共享和服务
阅读全文
摘要:kafka简介 kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。 下载地址:http://kafka.apache.org/downloads 消息的发布(publish)称作producer,消息的订阅(subscri
阅读全文
摘要:安装导入 使用 1、同步生产者 2、消费者
阅读全文
摘要:安装导入 github: https://github.com/go-sql-driver/mysql https://github.com/jmoiron/sqlx Doc: http://godoc.org/github.com/jmoiron/sqlx http://jmoiron.githu
阅读全文
摘要:go http编程 Go原生支持http,import(“net/http”) Go的http服务性能和nginx比较接近 几行代码就可以实现一个web服务 1、http server 2、http client 3、http常见请求方法 Get请求 Post请求 Put请求 Delete请求 He
阅读全文
摘要:go redis 1、安装导入 使用第三方开源的redis库: github.com/garyburd/redigo/redis github:https://github.com/antirez/redis Doc:http://godoc.org/github.com/garyburd/redi
阅读全文
摘要:TCP编程 1、客户端和服务器 2、服务端的处理流程 监听端口 接收客户端的链接 创建goroutine,处理该链接 3、客户端的处理流程 建立与服务端的链接 进行数据收发 关闭链接 服务端代码 客户端代码 发送http请求
阅读全文
摘要:go 单元测试 文件名必须以_test.go结尾 编写的测试用例函数名以Test开头,传入参数固定 使用go test执行单元测试 样例: 代码文件calc.go 单元测试代码文件calc_test.go 执行命令go test -v
阅读全文
摘要:go 定时器 一次定时器(官方不建议使用time.After,推荐time.NewTimer) 上面代码一秒后执行 超时控制 备注:使用定时器后,需要关闭,不关闭存在内存泄漏风险。
阅读全文
摘要:go channel 1、不同goroutine之间如何进行通讯? 全局变量和锁同步 Channel 2、channel概念 类似unix中管道(pipe) 先进先出 线程安全,多个goroutine同时访问,不需要加锁 channel是有类型的,一个整数的channel只能存放整数 3、chann
阅读全文
摘要:进程和线程 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的 一个独立单位。 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更 小的能独立运行的基本单位。 一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 并发和并行 多线程程序在一个核的cp
阅读全文
摘要:go 错误处理 定义错误示例 自定义错误示例 panic和recover Golang 有2个内置的函数 panic() 和 recover(),用以报告和捕获运行时发生的程序错误,与 error 不同,panic-recover 一般用在函数内部。 golang 的错误处理流程:当一个函数在执行过
阅读全文
摘要:json数据协议 导入包: Import “encoding/json” 序列化: json.Marshal(data interface{}) 反序列化: json.UnMarshal(data []byte, v interface{}) json序列化结构体、序列化map、序列化slice示例
阅读全文
摘要:go 终端读写 操作终端相关文件句柄常量 os.Stdin:标准输入 os.Stdout:标准输出 os.Stderr:标准错误输出 示例: go文件读写 os.File封装所有文件相关操作,之前的 os.Stdin, os.Stdout, os.Stderr都是 *os.File 打开一个文件进行
阅读全文
摘要:go 反射 反射:可以在运行时动态获取变量的相关信息 import (“reflect”) reflect.TypeOf,获取变量的类型,返回reflect.Type类型 reflect.ValueOf,获取变量的值,返回reflect.Value类型 reflect.Value.Kind,获取变量
阅读全文