随笔分类 -  [01]Golang

摘要:一、背景 在golang中,最主要的一个概念就是并发协程 goroutine,它只需用一个关键字 go 就可以开起一个协程,并运行。 一个单独的 goroutine运行,倒也没什么问题。如果是一个goroutine衍生了多个goroutine,并且它们之间还需要交互-比如传输数据,那彼此怎么传输数据 阅读全文
posted @ 2020-10-10 22:37 九卷 阅读(2364) 评论(0) 推荐(1) 编辑
摘要:一、为什么要使用Deadlines 当我们使用gRPC时,gRPC库关系的是连接,序列化,反序列化和超时执行。Deadlines 允许gRPC客户端设置自己等待多长时间来完成rpc操作,直到出现这个错误 DEADLINE_EXCEEDED。但是在正常情况下,这个DEADLINE_EXCEEDED默认 阅读全文
posted @ 2020-08-15 12:53 九卷 阅读(8805) 评论(0) 推荐(0) 编辑
摘要:代码主要来源于grpc的官方examples代码: route_guide https://github.com/grpc/grpc-go/tree/master/examples/route_guide 服务定义 RouteGuide service RouteGuide { // A simpl 阅读全文
posted @ 2020-08-14 01:08 九卷 阅读(1582) 评论(0) 推荐(0) 编辑
摘要:一、疑惑开篇 有了map为什么还要搞个sync.map 呢?它们之间有什么区别? 答:重要的一点是,map并发不是安全的。 在Go 1.6之前, 内置的map类型是部分goroutine安全的,并发的读没有问题,并发的写可能有问题。自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中 阅读全文
posted @ 2020-07-23 13:51 九卷 阅读(6606) 评论(0) 推荐(0) 编辑
摘要:简介 jaeger是一个比较有名的分布式链路追踪系统,底层用golang实现,兼容opentracing标准。 文档地址:docs github地址:github 官网:website blog:blog 部署 我们用docker部署,集成整套环境all-in-one,docker地址:https: 阅读全文
posted @ 2020-07-04 17:16 九卷 阅读(3261) 评论(0) 推荐(0) 编辑
摘要:收录的awesome-go项目,学习基础系列,go项目实战,go源码分析,go开发者成长路线图等等,把他们收集起来学习。 地址:https://github.com/jiujuan/go-collection :speaker: 觉得对您学习golang有帮助,请给我点一个 Star! :star: 阅读全文
posted @ 2020-07-02 20:18 九卷 阅读(151) 评论(0) 推荐(0) 编辑
摘要:先从业务开发角度出发,来逐渐引出中间件。 一、刚开始时业务开发 开始业务开发时,业务需求比较少。 当我们最开始进行业务开发时,需求不是很多。 第一个需求产是品向大家打声招呼:“hello world”。 接到需求任务,我们就进行代码开发了。 一般都会写下如下的代码,用handlefunc来处理请求的 阅读全文
posted @ 2020-04-20 01:11 九卷 阅读(3297) 评论(0) 推荐(1) 编辑
摘要:golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库/管理工具-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:golang自带路由介绍 golang自带路由库 http.ServerMux ,实际上是一个 map[st 阅读全文
posted @ 2020-02-18 17:30 九卷 阅读(11159) 评论(0) 推荐(1) 编辑
摘要:一:什么是调度 平常我们在生活中会有哪些调度的例子呢?比如十字路口的红绿灯,它就是一种调度系统。在交通十字路口,每个路口上多多少少有一些车辆,为了限制这些车辆不随意行驶,就建起了红绿灯调度系统。红绿灯可以有序的调度这些车辆行驶,使这些车辆快速的通过路口。 那为什么需要红绿灯来进行调度呢? 1:使车辆 阅读全文
posted @ 2020-02-15 04:01 九卷 阅读(2067) 评论(0) 推荐(1) 编辑
摘要:golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库/管理工具-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 golang常用库:字段参数验证库-validator使用 说明:此文发布于 2020.01.12,此文中使用的 阅读全文
posted @ 2020-01-12 21:23 九卷 阅读(15496) 评论(0) 推荐(0) 编辑
摘要:golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设计" "3. golang web框架 阅读全文
posted @ 2019-11-20 00:40 九卷 阅读(864) 评论(0) 推荐(0) 编辑
摘要:golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设计" "3. golang web框架 阅读全文
posted @ 2019-11-19 23:08 九卷 阅读(966) 评论(0) 推荐(0) 编辑
摘要:golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设计" "3. golang web框架 阅读全文
posted @ 2019-11-19 22:12 九卷 阅读(684) 评论(0) 推荐(0) 编辑
摘要:golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设计" "3. golang web框架 阅读全文
posted @ 2019-11-19 21:22 九卷 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:继续学习golang web框架设计 golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设 阅读全文
posted @ 2019-11-19 19:49 九卷 阅读(1944) 评论(0) 推荐(0) 编辑
摘要:继续学习谢大的Go web框架设计 golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web框架设计4:日志设计 阅读全文
posted @ 2019-11-18 19:44 九卷 阅读(2003) 评论(0) 推荐(1) 编辑
摘要:GO WEB 编程13节, "如何设计一个web框架" golang web framework 框架系列文章: "7. golang web框架设计7:整合框架" "6. golang web框架设计6:上下文设计" "5. golang web框架设计5:配置设计" "4. golang web 阅读全文
posted @ 2019-11-18 16:40 九卷 阅读(1755) 评论(0) 推荐(1) 编辑
摘要:From: 翻译blog地址 https://blog.lab99.org/post/golang-2017-10-04-video-understanding-channels.html 作者:大桥下的蜗牛 这是GopherCon 2017大会上,go开发专家 kavya Joshi 的一篇关于 阅读全文
posted @ 2019-10-17 23:40 九卷 阅读(1282) 评论(0) 推荐(0) 编辑
摘要:分析接口的赋值,反射,断言的实现原理 版本:golang v1.12 interface底层使用2个struct表示的:eface和iface 一:接口类型分为2个 1. 空接口 //比如 var i interface{} 2. 带方法的接口 //比如 type studenter interfa 阅读全文
posted @ 2019-09-20 16:49 九卷 阅读(3499) 评论(3) 推荐(2) 编辑
摘要:第一种:最简单的 上面的变种1 : ListenAndServe函数负责监听并处理连接。 第二种:Handler接口 上面的那种方式发挥余地太小,比如我想设置server的Timeout时间都不能设置。这时候我们就用到了 自定义的server 所以只要我们实现了Handler接口的方法ServeHT 阅读全文
posted @ 2019-08-13 01:00 九卷 阅读(510) 评论(0) 推荐(0) 编辑