分布式系统-CAP理论 CAP定理在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consistency)(等同于所有节点访问同一份最新的数据副本)注意这里和我们数据库一致性是不一样的,前者是副本的一致性,后者最终数据一致性 可用性(Availability)(每次请求都能获取到非错 2023-01-09 分布式篇 #CAP
Golang篇-深入理解GMP调度模型 之前对GMP的认识较为浅显,一直没有很深入的分析过GMP的调度模型,趁着这阵子有时间写一篇笔记记录一下 简介 携程是go中的一大特色,其占用较低的内存,通过携程使我们的应用能支持更大的并发,下面我们来剖析他的工作原理 概念G(goroutine)即Go协程,每个go关键字都会创建一个协程,它存储了goroutine的执行stack信息(运行时栈信息)、goroutine状态以及gorout 2022-12-20 编程语言 > Golang > 基础知识 #GMP
ETCD-高可用的 Key/Value 存储系统 简介是一种强一致性的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以在网络分区期间优雅地处理领导者选举(Raft) 简单接口 读写使用标准HTTP工具,例如CURL 键值存储 将数据存储在分层组织的目录中,如标准文件系统中 观察变化监视特定键或目录的更改,并对值的更改做出反应 安装1.获取二进制文件 1wget https://github.com/e 2022-12-19 数据库组 > ETCD #数据库
Golang篇-pprof性能调优工具 简介pprof是一种可视化和分析数据的工具,可以生成类似火焰图、堆栈图,内存分析图等。 应用配置导出数据 导入依赖 12"net/http"_ "net/http/pprof" 开启协程 12345go func() { runtime.SetBlockProfileRate(1) // 开启对阻塞操作的跟踪,block runtime 2022-12-15 编程语言 > Golang > 基础知识 #pprof
Golang-如何实现服务的优雅关停/更新 背景如果我们的应用在kubernetes上我们可以通过滚动更新,每次只更新一部分副本实现服务的不停机更新发布,那如果我们的项目不依托于kubernetes想要达到这种效果该如何实现呢 ? 我们想要达到的效果: 不关闭现有连接(正在运行中的程序) 新的进程启动并替代旧进程 新的进程接管新的连接 连接要随时响应用户的请求,当用户仍在请求旧进程时要保持连接,新用户应请求新进程,不会出现拒绝请求的情况 2022-11-24 编程语言 > Golang > 学习笔记
Nginx+Keepalived实现高可用案例 背景 实现高可用,防止单点发生故障导致服务下线影响业务正常进行 Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。(当一个节点挂掉,走另外一个节点) 搭建1.下载ke 2022-11-06 中间件篇
linux/arm64架构下kubernetes集群的搭建 背景 机器信息:三台linux/arm64架构 系统版本:centos7.6版本 主机名称 IP地址 说明 软件 Master01 192.168.100.21 master节点 kube-apiserver、kube-controller-manager、kube-scheduler、etcd、 kubelet、kube-proxy Node01 192.168.100.22 2022-11-05 云原生组 > Kubernetes #Kubernetes
性能测试-Java VS golang VS rust 声明本篇测试并非基准测试,相关测试结果仅供参考,如有错误之处还望指出。 环境JDK版本 openjdk version “19” 2022-09-20 Golang版本 go version go1.19.1 Rust版本 rustc 1.64.0 (a55dd71d5 2022-09-19) 机器 centos7.9.2/16G内存/4核CPU 测试工具 wrk 测试 为了 2022-10-18 编程语言 > Rust #性能测试