WaitGroup是Go并发编程中经常使用的做任务编排的一个一个并发原语。看起来它只有几个简单的方法,使用起来比较简单。实际上,WaitGroup的内部实现也陆陆续续改变了好几次,主要是针对它的字段的原子操作不断的做优化。
最近对rpcx做的一些优化以及一些优化尝试
最近在做2022 Go生态圈 rpc 框架 Benchmark之前,专门花了一星期时间,对rpcx进行了重点的优化,这篇文章专门记录一下几个重要的优化点,供大家参考。
2022 Go生态圈 rpc 框架 Benchmark
距离上一次2021年Go生态圈rpc框架benchmark的测试整整一年了。一年来,各个RPC框架也获得长足的进展,rpcx也在众多网友的支持下做了一些有益的优化和精简,所以是时候再做一次国内几个常用框架的性能比较了。
等等, 怎么使用 SetMemoryLimit?
Go 1.19中终于实现了SetMemoryLimit
的功能。Go的GC并不像Java那样提供了很多的参数可以调整,目前也就有GOGC
这么一个参数,所以能增加一个可以调整GC的参数确实让人兴奋。
使用BPF, 将Go网络程序的吞吐提升8倍
经典的bpf(classical Berkeley Packet Filter) 是非常好用的一个技术,在一些特殊的Go底层网络编程的场合,可以很好的提高性能。
想学习k8s但没有环境?使用minikube轻松搭建一个
Kubernetes(常简称为K8s)是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。该系统由Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用。
它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。 它支持一系列容器工具,包括Docker等。
Kubernetes(在希腊语意为“舵手”或“驾驶员”)由Joe Beda、Brendan Burns和Craig McLuckie创立,并由其他谷歌工程师,包括Brian Grant和Tim Hockin等进行加盟创作,并由谷歌在2014年首次对外宣布 。 该系统的开发和设计都深受谷歌的Borg系统的影响,其许多顶级贡献者之前也是Borg系统的开发者。在谷歌内部,Kubernetes的原始代号曾经是Seven,即星际迷航中的Borg(博格人)。Kubernetes标识中舵轮有七个轮辐就是对该项目代号的致意。
Kuberbetes一直是IT行业炽手可热的技术,很多同学都想学习它,但是刚想上手遇到了一个麻烦,需要搭建一个k8s的集群。虽然云服务提供商比如阿里云、百度云都提供了k8s集群的服务,但是还需要花一笔钱去购买服务和节点。如何在自己的机器上搭建一个k8s集群学习呢?本文给你介绍一种使用minikube搭建一个k8s测试集群的方法。