go 49 分布式事务 1 channel 6 goroutine 8 map 2 GMP 1 值拷贝 2 垃圾回收 3 设计模式 8 并发编程 5 singleFlight 1 waitgroup 1 go-zero教程 8 docker-compose 7 etcd 2 服务注册 1 服务发现 1 prometheus 1 grafana 1 服务监控 1 分布式锁 1 链路追踪 1 redis 3 单元测试 1 消息队列 1 socket编程 1 前端 1 grpc 3 1 工具 1 mysql 1 命令行 1 answer 1
技术

go-GMP

* G — 表示 Goroutine,它是一个待执行的任务; * M — 表示操作系统的线程,它由操作系统的调度器调度和管理; * P — 表示处理器,它可以被看做运行在线程上的本地调度器; 协程调度,工作窃取...

继续阅读
技术

go select原理及使用场景

go select原理。类似c语言的多路复用,可以同时监听多个channel。当有channel可读可写之前会一直阻塞。两个 `case` 都是同时满足执行条件的,如果我们按照顺序依次判断,那么后面的条件永远都会得不到执...

继续阅读
技术

go channel原理及使用场景

源码解析typehchanstruct{qcountuint//Channel中的元素个数dataqsizuint//Channel中的循环队列的长度bufunsafe.Pointer//Channe go,channe...

继续阅读
技术

go context上下文

1、context的解释在API之间或者方法调用之间,传递的除了业务参数之外的其他信息,比如traceId等。比如,服务端接收到客户端的HTTP请求之后,可以把客户端的IP地址和端口、客户端的身份信息 go,contex...

继续阅读
技术

golang中的几种并发模式

1、for-select模式这种模式通常用在从多个通道读取数据packagemainimport("fmt""time")funcmain(){ch1,ch2:=mak channel,s...

继续阅读
技术

golang中的errgroup

1、串行执行假如我们需要查询一个课件列表,其中有课件的信息,还有课件创建者的信息,和课件的缩略图信息。但是此时我们已经对服务做了拆分,假设有课件服务和用户服务还有文件服务。我们通常的做法是,当我们查询 errgroup,...

继续阅读