随笔分类 -  go

golang
摘要:raft 中文翻译 选举过程 跟随者一个心跳周期没有收到心跳,触发选举,但是为了选举安全性,和领导者失联的时间必须超过一个心跳周期开始 状态变化 跟随者 > 候选者 > 领导者 处理交互请求,例如 追加日志,选举投票等 // processRPC is called to handle an inc 阅读全文
posted @ 2021-05-18 17:29 S&L·chuck 阅读(185) 评论(0) 推荐(0) 编辑
摘要:go-kit/kit 基本功能 auth -- 校验 circuitbreaker -- 熔断 endpoint -- 服务 log -- 日志 metrics -- 监控 ratelimit -- 限流 sd -- 服务发现 tracing -- 跟踪 transport -- 请求 auth / 阅读全文
posted @ 2021-03-08 14:43 S&L·chuck 阅读(145) 评论(0) 推荐(0) 编辑
摘要:fx fx 为 uber 提供的一个 控制反转和自动化装配的golang语言的解决方案 demo 示例 示例: package main import ( "context" "log" "net/http" "os" "time" "go.uber.org/fx" ) // NewLogger c 阅读全文
posted @ 2021-01-23 15:44 S&L·chuck 阅读(268) 评论(0) 推荐(0) 编辑
摘要:zap zap 是 uber 提供的 一个高性能的组件库 结构 一条结构化的日志大致包含5个过程: 分配日志 Entry: 创建整个结构体,此时虽然没有传参(fields)进来,但是 fields 参数其实创建了 检查级别,添加core: 如果 logger 同时配置了 hook,则 hook 会在 阅读全文
posted @ 2021-01-08 17:26 S&L·chuck 阅读(306) 评论(0) 推荐(0) 编辑
摘要:websocket 协议了解 https://www.cnblogs.com/chyingp/p/websocket-deep-in.html 源代码 var addr = flag.String("addr", "localhost:8080", "http service address") v 阅读全文
posted @ 2020-12-03 18:00 S&L·chuck 阅读(267) 评论(0) 推荐(0) 编辑
摘要:oxy 作用 限流 负载 代理 Oxy is a Go library with HTTP handlers that enhance HTTP standard library: Buffer retries and buffers requests and responses Stream pa 阅读全文
posted @ 2020-12-03 14:33 S&L·chuck 阅读(140) 评论(0) 推荐(0) 编辑
摘要:leveldb 使用 // The returned DB instance is safe for concurrent use. Which mean that all // DB's methods may be called concurrently from multiple gorout 阅读全文
posted @ 2020-11-18 20:19 S&L·chuck 阅读(171) 评论(0) 推荐(0) 编辑
摘要:logrus 实现多个实例 func New() *Logger { return &Logger{ Out: os.Stderr, Formatter: new(TextFormatter), Hooks: make(LevelHooks), Level: InfoLevel, ExitFunc: 阅读全文
posted @ 2020-11-16 17:21 S&L·chuck 阅读(134) 评论(0) 推荐(0) 编辑
摘要:viper Functional options 在 c# 等语言中,一般多个参数这么实现 funcion add(){ } funcion add(int a){ } funcion add(int a,int b){ } 在 golang 中,由于没有重载,在实现多个参数是会比较麻烦,可能的实现 阅读全文
posted @ 2020-11-13 16:21 S&L·chuck 阅读(294) 评论(0) 推荐(0) 编辑
摘要:redigo 接口 Conn type Conn interface { // Close closes the connection. Close() error // Err returns a non-nil value when the connection is not usable. E 阅读全文
posted @ 2020-11-12 16:23 S&L·chuck 阅读(472) 评论(0) 推荐(0) 编辑
摘要:gin http.handler 接口定义 package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } func ListenAndServe(address string, h Handler) e 阅读全文
posted @ 2020-10-30 16:31 S&L·chuck 阅读(155) 评论(0) 推荐(0) 编辑
摘要:gRPC gRPC-入门 grpc 介绍 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, 阅读全文
posted @ 2020-06-06 22:43 S&L·chuck 阅读(612) 评论(0) 推荐(0) 编辑
摘要:并发 goroutine goroutine是Go并行设计的核心。goroutine说到底其实就是协程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),当然 阅读全文
posted @ 2018-11-09 20:04 S&L·chuck 阅读(340) 评论(0) 推荐(0) 编辑
摘要:反射(Reflection) 反射是利用reflect包实现的 反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地 反射使用TypeOf和ValueOf函数从接口中获取目标对象信息 反射会将匿名字段作为独立字段(匿名字段本质) 想要利用反射修改对象状态,前提是interface. 阅读全文
posted @ 2018-11-09 20:02 S&L·chuck 阅读(286) 评论(0) 推荐(0) 编辑
摘要:标准库 阅读全文
posted @ 2018-11-09 20:01 S&L·chuck 阅读(533) 评论(0) 推荐(0) 编辑
摘要:错误处理 通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型 可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用errors.New 可返回一个错误信息 func testErr(num int) (int, error 阅读全文
posted @ 2018-11-09 20:00 S&L·chuck 阅读(122) 评论(0) 推荐(0) 编辑
摘要:程序测试 测试是一个可重复的过程,它验证某个东西是否按预期工作。一般通过 go test 进行测试,步骤如下 首先,是我们的文件名。Go 要求所有的测试都在以 _test.go 结尾的文件中。这使得我们在检查另一个 package 包的源代码时,确定哪些文件是测试和哪些文件实现功能非常容易。 在看了 阅读全文
posted @ 2018-11-09 20:00 S&L·chuck 阅读(240) 评论(0) 推荐(0) 编辑
摘要:类型转换(Type Conversion) 类型转换用于将一种数据类型的变量转换为另外一种类型的变,基本格式 示例 阅读全文
posted @ 2018-11-09 19:59 S&L·chuck 阅读(504) 评论(0) 推荐(0) 编辑
摘要:语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址。取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。 一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前你需要声明指针。 var type 为指针类型,var_name 为指针变量名, 号用于指定变量 阅读全文
posted @ 2018-11-09 19:55 S&L·chuck 阅读(142) 评论(0) 推荐(0) 编辑
摘要:包处理 package是go管理代码的重要工具,用于组织 Go 源代码,提供了更好的可重用性与可读性。 可见性 变量或函数名的首字母大写时,其就是可导出的,小写时则是不可导出的。 函数和变量的可访问性是以包做隔离的。 main 函数和 main 包 可执行的程序都必须包含一个 main 函数。这个函 阅读全文
posted @ 2018-11-09 19:54 S&L·chuck 阅读(288) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示