gydtep
发表于 2020-12-1 19:14:06
分布式系统所面对的最大挑战之一就是可观测性。可观测性可以帮助我们解系统当前的状态,并作为应用自愈,弹性伸缩和智能运维的基础。
gydtep
发表于 2020-12-2 10:17:35
Ingress本质上就是一个NginxPod,这个Pod也是通过Service对象暴露出来,基于LoadBalancer模式对外提供反向代理与负载均衡。Ingress很像一个集群的路由器和访问入口,通过在ingress配置路由规则绑定工作负载与对应域名解析路径,达到只使用一个外部IP就能将多个集群内部的服务暴露出来,从而节省IP资源。
gydtep
发表于 2020-12-2 16:55:56
当Pod被创建后,与之绑定的Service服务对象也随之被创建,并且立即开始监听绑定的端口号。与Service相关的ClusterIP和Port值以环境变量方式自动设置到Pod中,该应用服务就能通过clusterIP和port对外提供服务了。
gydtep
发表于 2020-12-3 09:55:45
因为一切皆有变数,如果其他目标能够提前完成,就不妨利用这些时间去完成更多的学习目标。总之,前途必须光明,道路必须坎坷。
各目标之间不一定共享资源,规划不一定互有冲突。
gydtep
发表于 2020-12-3 13:40:15
在项目中学习是最快的成长方式之一,很多工程师非常享受这个过程。但是一年到头都做项目,你可能是在一家外包公司。
gydtep
发表于 2020-12-4 07:27:30
Guaranteed atomic operations。Guaranteed atomic operations 是指一些基本的读写内存操作,这些操作都是保证原子性的。一般来说,读写位于一个 cache line 中的数据是原子性的。
gydtep
发表于 2020-12-4 10:55:09
COW 的思想其实非常简单,首先我们有一个指向这个大对象的指针,在需要原子性修改这个大对象的数据时,因为没办法做到 inplace 修改,所以就把这个对象的数据拷贝一份,在对象副本上修改,最后再原子性地修改指向这个对象的指针。可以看到,这里最核心的地方是利用指令来实现指针的替换。
gydtep
发表于 2020-12-4 21:41:49
从更大的格局来看,针对多个对象的原子操作,本质上就是进行一次事务操作。所以,这个问题的解法,参考事务的实现就好了。
gydtep
发表于 2020-12-5 19:21:10
这里还有一个小插曲,Java之父James Gosling当年还写了一个能跨平台的Emacs版本,叫Gosmacs。本来社区想来一起完善这个版本,结果Gosling把它卖给了一家商业公司,同时它底层的Lisp不是一个真实完备的Lisp,而是一个叫Mocklisp的假Lisp,只是语法上和Lisp长得像而已。
gydtep
发表于 2020-12-6 15:43:22
大家要做的第一件事就是定一个目标,不要忽略这件事,它真的非常重要,因为不管是升级产品的功能还是其它,一定要十分清楚公司的KPI,这样才能决定产品最核心的KPI。