摘要:
golang中的原生包endcoding/json提供了序列化和反序列化json数据的功能 我们可以使用encoding/json中的Encoder.Encode()和Marshal()实现json序列化;使用Decoder.Decode()和Unmarshal()实现json反序列化 type M 阅读全文
摘要:
转载: https://zhuanlan.zhihu.com/p/457375259 根据CAP原理,分布式系统在可用性、一致性和分区容错性上无法兼得,通常由于分区容错无法避免,所以一致性和可用性难以同时成立。对于缓存系统来说,如何保证其数据一致性是一个在应用缓存的同时不得不解决的问题。 需要明确的 阅读全文
摘要:
1. 什么是服务器雪崩 雪崩是由于局部故障被正反馈循环,从而导致的不断放大的连锁故障,雪崩通常是由于整个系统中,一个很小的部分出现故障,进而导致整个系统不可用 雪崩出现的根本原因就是系统过载,如果在系统过载的情况下,不进行任何控制,那么会导致系统雪崩 想要避免雪崩有几种常见的方式,第一种就是快速减少 阅读全文
摘要:
1. 什么是gRPC拦截器 我们以etcd一个写请求的流程来看gRPC拦截器做了什么工作 当etcd处理一个写请求,比如 put hello world 时,首先etcd client会使用负载均衡算法选择一个etcd节点,发起gRPC调用; 然后etcd节点收到请求后经过gRPC拦截器、Quota 阅读全文
摘要:
环境:macos 1. 安装etcd 克隆etcd源码 v3.5.0 是etcd版本,想要下载指定版本在此指定即可 $ mkdir $GOPATH/src/github.com/etcd-io $ cd $GOPATH/src/github.com/etcd-io $ git clone -b v3 阅读全文
摘要:
在高并发场景中,通常需要像mysql中那样的自增主键一样的不会重复且自增的id生成 twitter的snowflake就是一种典型的解法,id数值长64位,是一个int64类型,被分为四个部分: 最高位不使用 41位表示收到请求的时间戳,单位为毫秒 5位表示数据中心的id 5位表示机器实例的id 1 阅读全文
摘要:
1. 数据争用 数据争用在golang中指两个协程同时访问相同的内存空间,并且至少有一个是写操作,就是线程不安全的问题 在golang中有一种经典的数据争用错误 func save(g *data){ saveToRedis(g) } func main(){ var a map [int]data 阅读全文
摘要:
1. StatefulSet为什么而生 在之前的Deployment中,已经可以看到这个控制器有多强大了,对于无状态应用可以做到滚动更新、回滚、扩容等一系列操作 但是对于有状态应用呢? 首先需要明确一个概念,什么是有状态应用? 有状态应用:实例之间有不对等关系、对实例外部数据有依赖关系的应用。最典型 阅读全文
摘要:
1. Secret 加密数据并存放在etcd中,让pod内容器以挂载volume方式访问 应用场景:凭据、用户名密码、https证书、docker仓库认证 pod使用secret的两种方式: 变量注入 挂载 1.1 secret使用 首先创建一个secret来保存一个常规的用户名和密码 如果我们要存 阅读全文
摘要:
视频类: 尚硅谷docker入门教程,快速上手 【尚硅谷】Docker迅速入门丨零基础学docker 周阳主讲_哔哩哔哩_bilibili 尚硅谷k8s入门教程,快速上手,偏向运维 尚硅谷Kubernetes教程(K8s入门到精通)_哔哩哔哩_bilibili 【尚硅谷】Kubernetes(k8s 阅读全文