
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
#青训营 x 字节后端训练营#
grpc负载均衡
此篇文章介绍grpc的负载均衡三种解决方案
集中式lb,进程式lb,独立lb进程。
同时介绍了protobuf的使用和grpc流模式和6种负载均衡算法。
grpc负载均衡
此篇文章介绍grpc的负载均衡三种解决方案
集中式lb,进程式lb,独立lb进程。
同时介绍了protobuf的使用和grpc流模式和6种负载均衡算法。
展开
评论
点赞
#青训营 x 字节后端训练营#
Go语言学习过程中好网站
pkg.go.dev。这个网站为Go语言官网给开发者查找各种packages的网站,在此网站上你可以搜索一些包,例如net/http,gorilla/websocket,你可以查找每个包的功能,开源地址,和包内各种函数的使用方法,例如你查找net/http,他会给你一个使用这个包创建一个http服务器的示例等等。部分函数需要查看源码注释,点击超链接可以直接跳转到谷歌关于go的源码界面(可能响应速度很慢)
Go语言学习过程中好网站
展开
评论
点赞
#青训营 x 字节后端训练营#
select+channel的多路复用,能实现完美的并发吗?
在go中引入了select语句来管理管道IO事件和实现协程通信,由于select语句在多case可执行的情况下只会挑选一个case分之执行,实现一个阻塞协程管理多个IO事件,节省了资源。但是select并不能实现完美的并发,比如我正在实现一个web-server,a协程中使用管道将缓冲区可读状态的connection传递给另一个协程b,协程b中采用select语句监听管道,当管道中有数据可读即触发case下的操作,在此我们在case实现一个阻塞操作,比如读取一个大文件等等,在case阻塞过程中,a协程还在不停的向管道发送资源,这样一批资源会在管道中堆积,由于堆积的是connection,那么被堆积的链接的客户端会感受到接口调用缓慢,非常影响体验。
select+channel的多路复用,能实现完美的并发吗?
在go中引入了select语句来管理管道IO事件和实现协程通信,由于select语句在多case可执行的情况下只会挑选一个case分之执行,实现一个阻塞协程管理多个IO事件,节省了资源。但是select并不能实现完美的并发,比如我正在实现一个web-server,a协程中使用管道将缓冲区可读状态的connection传递给另一个协程b,协程b中采用select语句监听管道,当管道中有数据可读即触发case下的操作,在此我们在case实现一个阻塞操作,比如读取一个大文件等等,在case阻塞过程中,a协程还在不停的向管道发送资源,这样一批资源会在管道中堆积,由于堆积的是connection,那么被堆积的链接的客户端会感受到接口调用缓慢,非常影响体验。
展开
评论
1