摘要: 零拷贝 项目之余,翻看Gin 的源码,看到下面两个函数,都不需要进行拷贝。那么下来我们就来分析下它是如何实现的。 1、基本数据结构 // StringToBytes converts string to byte slice without a memory allocation. func Str 阅读全文
posted @ 2022-03-07 10:39 roverliang 阅读(713) 评论(1) 推荐(1) 编辑
摘要: LRU 算法的全程是Least Recently Used的缩写,即最近最少使用,是一种常见的页面置换算法。redis的内存淘汰策略中,就有使用LRU 算法。 而之所以出现LRU算法,是因为系统中资源是有限的,不可能无限的冗余数据。所以只能保存最频繁访问的数据,来加速数据的访问。 要保证数据访问的时 阅读全文
posted @ 2022-01-08 14:21 roverliang 阅读(299) 评论(0) 推荐(0) 编辑
摘要: context 标准库 注:本文参考摘抄于《Go语言核心编程》 Go 中的goroutine 之间并没有父与子的关系,也就是没有所谓子进程退出后的通知机制,多个goroutine都是平行地被调度,多个goroutine如何协作设计通信、同步、通知和退出四个方面。 通信: chan通道当然是gorou 阅读全文
posted @ 2020-09-09 14:44 roverliang 阅读(340) 评论(0) 推荐(0) 编辑
摘要: PHP现代的框架,比如Yii、Laravel、或者是Swoole 的企业级框架Hyperf,都不约而同的使用了依赖注入、控制反转的设计模式。 这对于开发来讲说,如何注入对象和获取对象,变成了黑盒。DI容器装载了APP应用的所有的服务,当我们去调试代码时,通常会被海量的打印信息所吓到。面对冗余的信息, 阅读全文
posted @ 2020-08-12 20:45 roverliang 阅读(590) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Annotation & ConfigMap Annotation Annotation(注解)与Label类似,也使用key/value键值对的形式进行定义。不同的是Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(Metadata),并且用于La 阅读全文
posted @ 2020-08-05 16:08 roverliang 阅读(444) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Namespace Namespace(命名空间)是Kubernetes系统中的另一个非常重要的概念。 Namespace在很多情况下用于实现多租户的资源隔离。Namespace通过将集群内部的资源对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用 阅读全文
posted @ 2020-08-05 15:27 roverliang 阅读(225) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Volume & Persistent Volume 一、Volume Volume(存储卷)是Pod中能够被多个容器访问的共享目录。 Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。首先,Kubernetes中的Vo 阅读全文
posted @ 2020-08-05 15:09 roverliang 阅读(414) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & job 批处理任务通常并行(或者串行)启动多个计算进程去处理一批工作项(work item),在处理完成后,整个批处理任务结束。 从1.2版本开始,Kubernetes支持批处理类型的应用,我们可以通过Kubernetes Job这种新的资源对象定义并启动一个批处理任务Jo 阅读全文
posted @ 2020-08-05 14:04 roverliang 阅读(191) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Service 概述 Service服务也是Kubernetes里的核心资源对象之一,Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解Pod、RC等资源对象其实都是为讲解Kubernetes Service做铺垫的。图显示了 阅读全文
posted @ 2020-08-05 13:46 roverliang 阅读(218) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & StatefulSet 在Kubernetes系统中,Pod的管理对象RC、Deployment、DaemonSet和Job都面向无状态的服务。但现实中有很多服务是有状态的,特别是一些复杂的中间件集群,例如MySQL集群、MongoDB集群、Akka集群、ZooKeeper 阅读全文
posted @ 2020-08-04 19:45 roverliang 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Autoscaler 通过手工执行kubectl scale命令,我们可以实现Pod扩容或缩容。如果仅仅到此为止,显然不符合谷歌对Kubernetes的定位目标—自动化、智能化。在谷歌看来,分布式系统要能够根据当前负载的变化自动触发水平扩容或缩容,因为这一过程可能是频繁发生 阅读全文
posted @ 2020-08-04 19:37 roverliang 阅读(352) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Deployment Deployment是Kubernetes在1.2版本中引入的新概念,用于更好地解决Pod的编排问题。为此,Deployment在内部使用了Replica Set来实现目的,无论从Deployment的作用与目的、YAML定义,还是从它的具体命令行操作 阅读全文
posted @ 2020-08-04 18:43 roverliang 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Replication Controller RC是Kubernetes系统中的核心概念之一,简单来说,它其实定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,所以RC的定义包括如下几个部分。 ◎ Pod期待的副本数量。 ◎ 用于筛选目标Pod的L 阅读全文
posted @ 2020-08-04 18:13 roverliang 阅读(119) 评论(0) 推荐(0) 编辑
摘要: Kubernetes & Label Label(标签)是Kubernetes系统中另外一个核心概念。一个Label是一个key=value的键值对,其中key与value由用户自己指定。Label可以被附加到各种资源对象上,例如Node、Pod、Service、RC等,一个资源对象可以定义任意数量 阅读全文
posted @ 2020-08-04 18:11 roverliang 阅读(115) 评论(0) 推荐(0) 编辑
摘要: Docker & K8s学习记录 下载学习代码: https://github.com/kubeguide/K8sDefinitiveGuide-V4-Sourcecode 启动mysql RC服务 创建RC定义文件 mysql-rc.yaml apiVersion: v1 kind: Replic 阅读全文
posted @ 2020-08-04 17:25 roverliang 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Kubernetes的基本概念和术语 Kubernetes中的大部分概念如 Node Pod Replication Controller Service 等都可以被看作一种资源对象,几乎所有资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作 阅读全文
posted @ 2020-08-04 17:21 roverliang 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Serverless 是什么 Serverless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断发发展的。但是就算如此,有一些 Serverless 的特征还是被广泛认可的: 服务端的主机和进程 阅读全文
posted @ 2020-08-03 14:50 roverliang 阅读(406) 评论(0) 推荐(0) 编辑
摘要: daemon Docker deamon 是一个用于管理容器的后台进程。一般情况下,守护进程是一个长期运行的用来处理请求的进程服务。 -d 参数用于后台进程 build 如之前所讨论的,可以使用Dockerfile来构建镜像。简单的构建命令如下: docker build [options] PAT 阅读全文
posted @ 2020-07-30 11:59 roverliang 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Docker 使用Dockerfile 来描述构建步骤。我们将介绍什么是Dockerfile,它能够做到的事情以及Dockerfile的一些基本语法,并且总结了最佳实践和注意事项。 Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾 阅读全文
posted @ 2020-07-30 10:38 roverliang 阅读(484) 评论(0) 推荐(0) 编辑
摘要: Docker Run 命令行参数及其使用 Docker Run 顾名思义就是运行一个Docker。Docker 是一套封装,封装的对象是镜像(image)。 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: 左对齐 居中对齐 -a 阅读全文
posted @ 2020-07-29 14:47 roverliang 阅读(2663) 评论(0) 推荐(0) 编辑