mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
Delete ch6-01-cloud.md
This commit is contained in:
parent
1c89d4fcd1
commit
cef8b64147
@ -1,19 +0,0 @@
|
|||||||
# 6.1 云上地鼠
|
|
||||||
|
|
||||||
从 2014 年 docker 诞生起,Go 语言就开始在分布式领域崭露头角,之后 k8s,kong,groupcache,nats,etcd,tidb 等让人们不断看到了 Go 在分布式领域的新的可能性。目前在大部分的分布式场景下,Go 语言都有相应的产品,无论是存储,rpc 框架,消息队列等等。Go 被称为分布式时代的 C 语言着实所言非虚。
|
|
||||||
|
|
||||||
从语言本身的特点来讲,Go 编译后不依赖外部运行环境,部署方便,无论公司内的部署系统是古老的 ansible,还是现在的 docker 镜像部署。都能够方便地与 Go 进行集成。所以 Go 天生适合分布式场景。而在没有 docker 的旧时代,python、java 类的语言需要在上线时额外关注运行环境的问题。实际上是增加了工程运维方面的心智负担。
|
|
||||||
|
|
||||||
python 为了解决这个问题还专门推出了 pipenv 方案。java 系统中要为每个模块设置自己的 jre 路径,以保证模块能够正常运行。
|
|
||||||
|
|
||||||
而使用 Go 则完全没有这些烦恼,即使没有 docker 相助,我们只要把二进制文件扔到服务器上,就万事大吉了。
|
|
||||||
|
|
||||||
需要注意的是,到了分布式环境,很多程序运行是与我们的直觉相悖的。这一点与计算机刚刚进入多核心时代类似,程序员们手忙脚乱地修改历史遗留程序,以使之适应多核环境并提高性能,但是却发现多核心也带来了一些问题,比如怎么才能合理地利用 cpu 的多级缓存来提高性能,为什么我的算法修改为多核心之后反而更慢了。
|
|
||||||
|
|
||||||
同理,分布式环境可以认为是一个分布式计算机。每台机器即是这个分布式计算机的一个核心。在这个环境下编程,你同样需要解决那些在多核心刚刚到来时困扰程序员们的那些问题。这些问题包括,但不限于:
|
|
||||||
|
|
||||||
## 锁
|
|
||||||
|
|
||||||
## 数据一致性
|
|
||||||
|
|
||||||
## 定时器
|
|
Loading…
x
Reference in New Issue
Block a user