(译)为什么要使用 Go 模块代理

引入Go模块之后,我以为这就是最终解决方案了。我很快意识到事实并非如此。最近,大家开始提倡使用Go模块代理。在研究了利弊之后,我得出结论,这是近年来最重要的变化之一。何处此言?是什么使Go模块代理如此特别?

在Go模块中,如果你添加了新的依赖项或者在没有缓存过的新机器上构建Go模块,则它将(go get)下载go.mod中的所有依赖项,并将其缓存以用于进一步的操作。可以通过使用vendor/文件夹并编译时携带-mod=vendor参数来绕过缓存(以及下载依赖项)。

但是这两种方法都不甚完美,我们有更好的方案。

……

阅读全文

Raft 算法理解和总结

Hyperledger fabric 自1.4.1版本开始支持了 Raft 共识,比原先的生产环境推荐共识”kafka”,搭建的复杂度和可维护性上要好不少,并且 1.4.0 是 Hyperledger的第一个长期维护版本(long term support),推荐在生产环境中使用,完全可以升级并使用Raft共识。

本文介绍总结Raft 算法,主要是根据著名的 Raft讲解动画的理解,并进行文字化的总结。强烈推荐这个讲解动画,可配合动画阅读下文,更容易理解。

……

阅读全文

关于我

欢迎来到我的博客~ 半路出家打杂程序员,曾做过iOS开发,PHP开发,非主业语言包括JAVA,python,C++,javascript。目前从事golang开发。 原博客域名为 https://sumbrilliance.com 现已经(2019-03-01)迁移到目前域名下,原域名不再维护。 个人邮箱:uyhhi1ss@gmail.com 此博客模板来源于此github项目,采用现有模板节省了我大量的精力,使得我可以专注于撰写博文,在此对原作者表示感谢。……

阅读全文

docker多容器实践:nginx+go+beego镜像做反向代理

本文通过一个简单的案例实践,描述了多容器多服务下如何对服务配置和关联。具体为

  1. 基于 beego实现的一个 http服务,使用 go官方镜像,打包成一个容器1
  2. 通过 go 容器,将1中的服务,简单修改,克隆出第二个 http,打包成容器2
  3. 使用 nginx 镜像,生成一个反向代理容器,代理到对上述两个容器服务
……

阅读全文

go 包管理

golang 的包管理一直为人所诟病,从GOPATH到vendor再到vgo,都不太理想。于是出现了各种第三方的解决方案。最近发布的 1.11版本,官方推出了 go module,试图统一这种乱象,解决包管理方面的不足。

……

阅读全文