技术阅读周刊,每周更新。
本文是
Golang
核心作者之一 Rob Pike 去年底在澳大利亚 GopherConAU 会议上的分享;总结了 Go 语言 14 年来的做对了哪些事情、做错了哪些事情。
主要包括:
本文介绍了作为一个平台工程师需要掌握的工具。
先定义了什么是平台工程师:
为研发人员提供平台资源进行开发,让开发人员可以在云环境中自助完成整个软件生命周期的各个环节,比如基础环境搭建、代码 pipelines、监控等。
以下是会用到的工具:
URL: https://blog.quastor.org/p/load-balancing-algorithms-explained-visually?utm_source=tldrwebdev
本文介绍了一些负载均衡算法以及其优缺点。
轮询算法(Round Robin):每个请求按顺序分配到不同服务器。实现简单,但不能考虑服务器负载情况。
加权轮询(Weighted Round Robin):考虑服务器性能给各服务器设置权重,请求分配按权重比例进行。仍然不能实时反应服务器负载变化。
最少连接数(Least Connections):实时监测各服务器连接数,将请求分配到连接数最少的服务器上。实现较复杂,需要定期探测各服务器状态。
最短响应时间(Least Response Time):监测各服务器响应时间,分配给响应最快的服务器。
双随机选择(Power of Two Choices):随机选择两台服务器,将请求分配给负载较轻的一台。减少监测开销。
一致哈希(Consistent Hashing):根据请求关键信息计算哈希值,将请求分配给对应的机器范围。解决主机添加和删除问题。
其他算法如根据磁盘、内存利用率进行负载分配等。
URL: https://www.reddit.com/r/golang/comments/176b5pn/what_problem_did_go_actually_solve_for_google/
这是一个 Reddit 上的帖子,OP 的问题是 Rob 在之前的分享中提到 Golang 创建的原因是要解决 Google 内部的问题,但没有具体讲 Google 到底遇到了什么问题?
什么问题是几百种编程语言都无法解决的问题?
以下是一些高赞回答:
总体来说, Go 主要解决的是在大型分布式系统中如何更高效地进行协作开发、实现高性能又易维护。这正是 Google 当时最关心的问题。
文章链接:
#Newletters