随笔分类 - Go
摘要:1. Kafka介绍 1.1.1. Kafka是什么 kafka使用scala开发,支持多语言客户端(c++、java、python、go等) Kafka最先由LinkedIn公司开发,之后成为Apache的顶级项目。 Kafka是一个分布式的、分区化、可复制提交的日志服务 LinkedIn使用Ka
阅读全文
摘要:BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概念,这两个概念相对比较新,有些开发人员甚至是架构师都不甚理解。 参考:https://www.cnblogs.com/dadadechengzi/p/9373069.html
阅读全文
摘要:在开发过程中,map是必不可少的数据结构,在Golang中,使用map或多或少会遇到与其他语言不一样的体验,比如访问不存在的元素会返回其类型的空值、map的大小究竟是多少,为什么会报"cannot take the address of"错误,遍历map的随机性等等。 本文希望通过研究map的底层实
阅读全文
摘要:如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地。
阅读全文
摘要:slice是 Go 语言在数组之上提供的一个重要的抽象数据类型。在绝大多数需要使用数组的场合,切片都实现了完美替代。并且和数组相比,切片提供了更通用、功能更强大且便捷的数据序列访问接口。 1.什么是数组 Go 语言数组是一个固定长度的、容纳相同类型元素的连续序列。因此 Go 数组类型具有两个属性:元
阅读全文
摘要:package main import ( "fmt" ) type Student struct { id int name string } func main() { //比较 s1 := Student{1, "yy"} s2 := Student{2, "yang"} s3 := Stud
阅读全文
摘要:logrus介绍 logrus配置 日志打印 HOOK机制 Gin日志 Fatal处理 线程安全 logrus介绍 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数。对于更精细的日志级别、日志文件分割,以及日志分发等方面,并没有提供支持。在golang的世界
阅读全文
摘要:为什么要使用日志 记录参数信息 猜测用户行为 复现系统bug并修复 func main() { // 禁用控制台颜色 gin.DisableConsoleColor() // 创建记录日志的文件 f, _ := os.Create("gin.log") gin.DefaultWriter = io.
阅读全文
摘要:什么是分组 对router创建Group(就是分组), 对同一分组会拥有同一前缀和同一中间件 写法 eg: r := gin.Default() v1 := r.Group("/v1") v1.POST("/login",loginEndpoint) v1.POST("/submit",submit
阅读全文
摘要:Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 Viper Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 鉴于viper库本身的README已经写得十分详
阅读全文
摘要:在多年的 Go 语言实践积累后逐渐形成了一种典型项目结构,如下图所示: 上面就是一个支持构建二进制可执行文件(在 src 下)的典型 Go 项目的结构。 1 src 目录: 存放项目要编译构建的可执行文件对应的 main 包的源文件。如果有多个可执行文件需要构建,每个可执行文件的 main 包单独放
阅读全文
摘要:一、HTTP基本认证 Basic Authentication——当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码。 http auth的过程: 客户端发送http请求 服务器发现配置了http auth,于是检查request里面有没有"Authorization"的http
阅读全文
摘要:package Factory import "fmt" type Restaurant interface { GetFood() } type Donglaishun struct { } func (d *Donglaishun) GetFood() { fmt.Println("东来顺的饭菜
阅读全文
摘要:组合 > 继承 Go中的设计,以为继承的被诟病,所以Golang的设计团队在语言的设计时并没有采用经典的OO模式 那Golang中各个部分是怎么联系到一起的呢 type ReadWriter interface { Reader Writer } 通过在interface中嵌入interface t
阅读全文
摘要:内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上),跟 new 类似,第一个参数也是一个类型而不是一个值,跟 new 不同的是,make 返回类型的引用而不是指针,而返回值也依赖于具体传入的类型 make()函数在golang的代
阅读全文
摘要:我的GOPATH是这样的 但是当我go get下载包之后 下载的却不在src,而是在 $GOPATH$/pkg 下 原因可能是之前第一次go get下载, GitHub的速度太慢了,我更改了代理,使用了mod功能 go mod的正确使用 这次重新使用goland的终端按go mod步骤导入 使用 g
阅读全文

浙公网安备 33010602011771号