golang
golang的一些文章,问题
天帅风ztm
待业在家,研究golang算法
展开
-
协程间的三种通信方式,你学会了吗?
golang中要想灵活运用协程来解决问题,协程间的通信一定要掌握。这里列举了3种方式。sync.waitgroup 其实也应该掌握原创 2022-07-14 16:32:04 · 1307 阅读 · 0 评论 -
golang 依赖注入 dig详解
dig库是一个为go提供依赖注入(dependencyinjection)的工具包,基于reflection实现的。在项目中会涉及到很多对象,它们之间的依赖关系可能是这样的对象D的创建依赖于对象B和对象C对象B和对象C的创建依赖于对象A}如果在很多地方都需要用户D对象,有两个方法从别的地方传一个D对象过来利用NewD重新生成一个新的D对象。...原创 2022-07-22 11:12:22 · 841 阅读 · 0 评论 -
grpc UnimplementedServer 实战
微服务架构中,由于每个服务对应的代码库是独立运行的,无法直接调用,彼此间的通信就是个大问题gRPC可以实现微服务,将大的项目拆分为多个小且独立的业务模块,也就是服务,各服务间使用高效的protobuf协议进行RPC调用,gRPC默认使用protocolbuffers,这是google开源的一套成熟的结构数据序列化机制(当然也可以使用其他数据格式如JSON)可以用protofiles创建gRPC服务,用message类型来定义方法参数和返回类型其实是这样子滴//第一种方法。...原创 2022-07-21 14:24:26 · 778 阅读 · 0 评论 -
徒手撸个btree,Go数据结构与算法-BTree
B树是一种平衡的多路查找树。树,可广泛用于磁盘访问。M阶树顺序的B树最多可以有m-1个键和M个子树。使用B树的主要原因之一是它能够在单个节点中存储大量键,并且通过保持树的高度相对较小来存储大键值。......原创 2022-07-17 17:10:34 · 576 阅读 · 0 评论 -
go并发编程(一)
for-select模式一、在通道上发送迭代变量二、无限循环等待停止原创 2022-07-07 12:39:01 · 85 阅读 · 0 评论 -
go 常见面试题
用 select 和原创 2022-07-05 07:52:36 · 765 阅读 · 0 评论 -
go channel 有哪些应用?
channel 用于停止信号的场景还是挺多的,经常是关闭某个 channel 或者向 channel 发送一个元素,使得接收 channel 的那一方获知道此信息,进而做一些其他的操作。任务定时原创 2022-01-20 14:47:03 · 618 阅读 · 2 评论 -
go 令牌桶算法
go 令牌桶算法原创 2022-06-13 11:21:42 · 250 阅读 · 0 评论 -
golang泛型初探,怎么定义切片,map,channel
go泛型初探原创 2022-04-17 11:58:11 · 2243 阅读 · 0 评论 -
go 爬虫避坑实战
header缺少cookie类似51job爬不下来,爬取的时候会指向一个拖拽认证的页面爬取的中文字符乱码了func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src) tagCoder := mahonia.NewDecoder(tagCode)原创 2022-03-14 17:41:22 · 716 阅读 · 0 评论 -
go 限制并发数
go通过channel限制goroutine的并发数func main() { listconlimit := make(chan bool, 10) // 新建长度为10的管道 for n := 1; n <= 4000; n++ { // 启动4000个协程 listconlimit <- true // 管道写入,缓冲为10,写满10就阻塞 go func(n int) { defer func() { <-listconlimit }() //释原创 2022-03-12 22:25:16 · 1037 阅读 · 2 评论 -
go实现分布式爬虫1
go爬虫初探1go爬虫先了解go的"net/http"包https://www.cnblogs.com/mafeng/p/7068837.html这里先学习一下go的get和post请求,具体就是请求数据,然后获取返回的resp,分析resp获取你想要爬取的东西具体代码可到 https://gitee.com/longshuai/go-reptile 这里下载爬虫初探u := fmt.Sprintf(`https://movie.douban.com/top250?start=%d`, 0)原创 2022-03-12 14:50:53 · 1922 阅读 · 0 评论 -
goim 源码分析(一) comet
goim 源码分析(一) comet启动comet服务new comet server我们再来看一下开启websocket服务启动comet服务今天就来看看comet怎么开启服务,然后怎么去控制buckt,room和在线人数的new comet serversrv := comet.NewServer(conf.Conf)func NewServer(c *conf.Config) *Server { s := &Server{ //1 c: c, roun原创 2022-01-19 13:01:53 · 2238 阅读 · 0 评论 -
goim 徒手搭建
goim搭建基于docker安装kafka和rediszookeeperversion: '3.1'networks: default: external: name: zookeeper_networkservices: zoo1: image: zookeeper restart: always container_name: zoo1 hostname: zoo1 ports: - 2181:2181 v原创 2022-01-16 18:16:38 · 1703 阅读 · 0 评论