摘要: 在线查看文档实在是太慢了,文档之间往往有相互链接引用,有时候看到一个术语链接,跳过去等半天,以至于内容加载完后都忘了想看什么了。正好看到k8s提供离线文档,也给出了本地运行网站的说明,索性就部署一个本地网站 部署 按照官方文档,使用容器方式运行,确保本地安装了docker desktop,并启动 g 阅读全文
posted @ 2021-10-28 11:44 一只coding猪 阅读(199) 评论(0) 推荐(0)
摘要: 1. 概述 在网络通信中,经常会用到加解密技术,其中AES加解密算法是比较广泛的应用于大块数据的对称加解密算法,本文主要介绍AES算法的一些基本原理,假设您对加解密、秘钥等知识有一定的认识,目标是为了建立对AES算法的概念认知,这里不打算对算法的数学原理进行阐述。 2. 术语 名词释义AESAdva 阅读全文
posted @ 2021-10-09 18:06 一只coding猪 阅读(490) 评论(0) 推荐(0)
摘要: 最近面临一个应用场景,需要对一个倒手转发的json进行数据替换,查阅了众多的库,大部分都不支持这个功能,从历史项目里捞出了jsonpath这个库,但其只能根据jsonpath的schema进行Get操作,无法实现inplace回写,后来又找到sjson,这是个根据jsonpath回写的库,没有用反射 阅读全文
posted @ 2021-09-14 07:26 一只coding猪 阅读(160) 评论(1) 推荐(0)
摘要: 高可用系统的一些基本概念 一、高可用的定义可用故障 二、提升可用性的三条原则1. 消除单点故障2. 可靠的交叉点服务3. 提前检测故障并快速恢复 三、高可用面临的挑战状态一致性故障的快速恢复 四、可用性的量化平均故障间隔时间(MTBF)平均修复间隔时间(MTTR)可用性计算公式可用性计算示例 Con 阅读全文
posted @ 2021-07-06 11:02 一只coding猪 阅读(273) 评论(0) 推荐(0)
摘要: 一. 引言 最早在go设计的初期,设计者们花了一年的时间对array类型的定义进行讨论,因为像其他语言一样,数组一般被设计为定长的、长度属于类型的一部分的用来描述线性地址空间的数据结构,但是这种定长类型对于使用者比较受局限,所以类似像C++这样的语言会出现vector这样的数据结构,来弥补数组在动态 阅读全文
posted @ 2021-06-03 17:02 一只coding猪 阅读(119) 评论(0) 推荐(0)
摘要: 很久之前面试时,有面试官表示,interface、指针不能用于map的key,当时不解,interface确实不太清楚,不过指针不就是uint64变量吗,难道uint64不能作为key吗?今天忽然回想起来,决定搞搞清楚。 官方说法 根据Andrew Gerrand在2013年的Go maps in 阅读全文
posted @ 2021-05-18 09:47 一只coding猪 阅读(50) 评论(0) 推荐(0)
摘要: 一. errors的基本应用 errors包是一个比较简单的包,包括常见的errors.New创建一个error对象,或通过error.Error方法获取error中的文本内容,本质上在builtin类型中,error被定义为一个interface,这个类型只包含一个Error方法,返回字符串形式的 阅读全文
posted @ 2021-03-17 13:43 一只coding猪 阅读(68) 评论(0) 推荐(0)
摘要: 源自官方博客一篇文章《The Laws of Reflection》,主要是对于interface类型和反射的一些概念性定义,以下内容仅用于个人记录,如果没有读过原文可能阅读体验不好,请谅解。 类型与接口 go是静态类型语言go是强类型语言别名类型也必须强转才能赋值类原类型interface类型可以 阅读全文
posted @ 2021-03-15 22:32 一只coding猪 阅读(7) 评论(0) 推荐(0)
摘要: redsync是redis官方推荐的go版本分布式锁实现,标准的官方redlock算法实现,阅读了下源码并顺便复习一下redis分布式锁原理。 一. redlock算法 单点场景 首先来看单redis实例的场景,这是集群模式的基础。这种场景下实现分布式锁比较简单 加锁 各节点通过set key va 阅读全文
posted @ 2021-03-04 14:10 一只coding猪 阅读(83) 评论(0) 推荐(0)