golang学习
文章平均质量分 66
Sunrise_Tao
golang/c
展开
-
你需要了解的goroutine和GMP模型
如果协程顺序执行,会有饥饿问题协程执行中间,将协程挂起,执行其他协程完成系统调用时挂起,也可以主动挂起防止全局队列饥饿,本地队列随机抽取全局队列基于系统调用和主动挂起,协程可能都无法调度基于协作的抢占式调度:业务主动调用morestack()基于信号的抢占式调度:强制线程嗲用doSigPreempt()1.为什么用协程协程用来精细利用线程写成可以支撑超高并发2.协程是什么从runtime角度看,协程是一个可以被调度的g结构体从线程角度看,协程是一段程序,自带执行现场。原创 2024-07-21 16:15:49 · 1418 阅读 · 0 评论 -
Go日志实时收集系统
gopsutil是psutil的go版本,可以方便的获取系统的cpu,内存,磁盘,网络等信息。1.我们使用tail包进行日志文件的监控,每当日志文件有新的日志追加,就可以通过tail读取到,然后发送到msg channel1,进行一个异步的处理。3.当收到etcd-watcher的通知,日志收集项配置发生变化时候,根据具体的变化,对应的去停止或启动tail goroutine。4.日志需要设计好结构体,方便映射和存储到es,例如需要包括模块名,日志消息内容,日志级别等。2.将受到的日志存储到es。原创 2024-07-07 14:22:03 · 459 阅读 · 0 评论 -
GO-RPC的简单使用步骤
golang的rpc服务端和客户端的简单使用原创 2022-03-05 18:01:10 · 292 阅读 · 0 评论