[转载]深度解密Go语言之 scheduler

转载至 https://www.cnblogs.com/qcrao-2018/p/11442998.html, 一篇很不错讲解 Golang scheduler 的文章。

在 Go 语言里,go func 是并发的单元,chan 是协调并发单元的机制,panic 和 recover 是出错处理的机制,而 defer 是神来之笔,大大简化了出错的管理。

Goroutines 在同一个用户空间里同时独立执行 functions,channels 则用于 goroutines 间的通信和同步访问控制。

[转载]搭建基于Docker的OpenVPN服务

原文链接:http://dockone.io/article/214

本教程将介绍如何使用Docker来设置和运行OpenVPN容器。

提供了一种方法来创建TLS加密(SSL的演进)的虚拟专用网络(VPN)。它可以防止网络流量被窃取和中间人(MITM)攻击。专用网络可以用来安全地连接设备,例如,它可以把在不安全的WiFi环境下的笔记本电脑或移动电话连接到远程服务器,然后走Internet流量。它也可用于互联网设备之间的安全连接。

基于Go-micro微服务的秒杀系统

前段时间了解到了Go-micro这一微服务开发框架,并基于此框架的教程搭建了一套码头货运管理微服务系统。这次使用Micro来设计和实现了一套更接地气的秒杀系统。

对于秒杀,以及抽奖、抢红包这类系统的最大特点便是在某个时间点会瞬间涌入大量的用户,给系统造成瞬间高于平时千百倍的并发压力。针对这样的特点在设计微服务时就需要考虑一系列的措施来保障系统在高并发场景时可以稳定运行。

完整代码地址

初探微服务

日常工作中一直在用 Django 这类 MVC 架构的框架来搭建后台。然而早已对微服务架构闻名已久,早想有机会实践一下,靠着搜索引擎找到这篇不错的教程:Golang 微服务教程,总结了微服务开发、测试到部署的完整过程。跟着初步实践了下微服务的构建过程,过了下微服务的瘾,在这里总结下。

使用持续集成系统解放生产力

程序猿除了希望写好代码,一定也想着自己的项目可以如何快速的迭代上线,从而可以专注的完成代码的编写,减少繁杂的运维等工作。例如完成一项功能的开发后,推送到 Git 等代码管理系统后,剩下的测试、部署、上线等工作可以交给一个系统来自动化完成,这时便可以靠持续集成系统了。这里记录下我使用老牌的 Jenkins 持续集成系统来帮助自己完成的工作。

Go 基础知识点

已经专职做了很久的 Python 开发,不过心中对当初带我入行 C 也一直有些留恋。Go 语言的设计和定位和 C 语言有很多共同之处,也融入了很多现代的设计理念,写起来很有当初写 C 的亲切感。准备好好学习下这门语言,这里记录下一些个人觉得重要的基础知识点,随着不断深入再补充。