汇编语言

图灵在数理逻辑方面的理论研究,间接地创造了机器指令设计的基本方法,计算机界最高奖项也因此称图灵奖;现代计算机之父冯诺依曼,于1945年提出了“存储程序通用电子计算方案”,提出了指令数据存储思想,并在 1951 年成功研制出了冯诺依曼结构的 IAS 计算机(现在计算机的原型机),奠定了现代计算机的微体系设计和程序结构设计。

go command 命令

/usr/local/go/bin 下提供了三个命令 go、gofmt、godoc。主命令 Go 下分二级和三级子命令,本文档将迭代完善,争取列出所有功能点,目前还处于更新状态。

go log 包

1   错误相关的概念

  • 编译错误:build的时候就报错,由于考虑不周或输入错误导致程序异常(Exception),比如数组越界访问,除数为零,堆栈溢出等等。是大意疏忽。
  • 运行错误:run的时候才报错,由于程序设计思路的错误导致程序异常或难以得到预期的效果。运行错误可以是预期的,也可以是不可预期的,对于可预期的不要用 panic,panic 恐慌机制是意料之外,如果不恢复(recover)就会导致宕机。宕机(panic)不是一件很好的事情,可能造成体验停止、服务中断,就像没有人希望在取钱时遇到 ATM 机蓝屏一样。但是,如果在损失发生时,程序没有因为宕机而停止,那么用户将会付出更大的代价,这种代价可以是金钱、时间甚至生命。因此宕机有时是一种合理的止损方法。
  • error错误:错误是业务过程的一部分,而异常不是。错误是可预期的结果,error错误机制是意料之中。

Istio 流量管理

流量管理是 istio 最核心的问题,涉及 v1alpha3 中的配置资源,包括Gateway、VirtualSerice、DestinationRule 等。本文主要是基于 Istio 基础一文已经部署的实例来进行讲解。

Kubernetes 网络

微服务是多进程、多服务部署,无法通过 IPC 进程内调用,必然通过网络调用,这将带来很多问题:不可靠、有带宽、协议设计。无论是 TCP、HTTP、RPC,无论是东西流量还是南北流量,涉及限流、熔断、域名及路径上下文,都需要 Kubernetes 或者第三方产品给出解决方案。网络是 Kubernetes 的难点之一。

Istio Prometheus

我选择 Istio 而非 Service Mesh 鼻祖 Linkerd 的原因,是 Istio 有大牌厂商支持、社区生态圈优势、重点支持 Kubernetes。

Istio 基础

我选择 Istio 而非 Service Mesh 鼻祖 Linkerd 的原因,是 Istio 有大牌厂商支持、社区生态圈优势、重点支持 Kubernetes。

微服务架构

这是一个架构概念爆发的时代,是架构本身的复杂度已经开始超越业务逻辑本身的时代,同时也是越来越接近 DevOps 工作方式的时代。