ICode9

精准搜索请尝试: 精确搜索
  • GoConvey使用与总结2022-02-27 16:03:13

    GoConvey是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 Web 界面特性。 Golang虽然自带了单元测试功能,并且在GoConvey框架诞生之前也出现了许多第三方测试框架,但没有一个测试框架像GoConvey一样能够让程序员如此简洁优雅的编写测试代码

  • 006-Golang1.17源码分析之select2022-02-21 19:02:12

    Golang1.17源码分析之select-006 Golang1.17 学习笔记006 源码地址:runtime/select.go 数据结构: type scase struct { c *hchan // chan elem unsafe.Pointer // data element } 核心函数:selectgo() order0 为一个两倍 cas0 数组长度的 buffer,保存 scase 随机

  • Ingress nginx Controller源码分析2022-02-20 22:34:11

    主要结构图 入口函数 cmd/nginx/main.go func main() { klog.InitFlags(nil) rand.Seed(time.Now().UnixNano()) fmt.Println(version.String()) showVersion, conf, err := parseFlags() if showVersion { os.Exit(0) } if err != nil { k

  • 极客兔兔七天系列学习笔记--GeeCache2022-02-20 12:03:21

    首先我们来归结分布式缓存的主要组成: 分布式,每个结点自身能提供缓存服务,也能向其他节点请求服务。 缓存,缓存的策略众多,GeeCache采用的是LRU策略。 缓存 LRU 核心是两个数据结构,字典和双向链表。其中,字典存储键和值的映射关系,查找对应值的复杂度为O(1)。然后具体存储值的是双向

  • kube-scheduler源码分析(1)-初始化与启动分析2022-02-20 11:01:45

    kube-scheduler源码分析(1)-初始化与启动分析 kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件之一,主要负责pod资源对象的调度工作,具体来说,kube-scheduler组件负责根据调度算法(包括预选算法和优选算法)将未调度的pod调度到合适的最优的node节点上。 kube-scheduler架

  • Kubebuilder认证配置文件的加载2022-02-17 21:01:37

    在kubernetes二次开发-Kubebuilder最佳实践中,我们简单使用了Kubebuilder来资源创建、验证等操作,那么你一定很好奇,程序是如何连接到Kubernetes的,下面我们来简单看下。 来到main.go mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: s

  • 详解 Seata Golang 客户端 AT 模式及其使用2022-02-03 21:35:53

      概述   我们知道 Seata Java Client 的 AT 模式,通过代理数据源,实现了对业务代码无侵入的分布式事务协调机制,将与 Transaction Coordinator (TC) 交互的逻辑、Commit 的逻辑、Rollback 的逻辑,隐藏在切面和代理数据源相应的代码中,使开发者无感知。那如果这个方法,要用 Golang

  • 为什么你写的代码总是有 Bug?用它来保证 Go 代码质量2022-01-31 21:31:10

      序幕   这篇文章是集成测试系列两个部分中的第二部分。你可以先读 Go 语言中的集成测试:第一部分 - 用 Docker 执行测试。本文中的示例可以从 代码仓库[1] 获取。   “比起测试行为,设计测试行为是已知的最好的错误预防程序之一。” —— Boris Beizer   在执行集成测试之

  • pika在codis中的探索2022-01-30 18:31:10

    背景 面对kv类型数据在公司的存储量越来越大,以及在性能响应不敏感的情况下,利用原生的codis方案来存储数据的方案,成本也越来越高,在这种场景下,急需一种替代方案能够有效兼顾成本与性能。故引入了pika来作为codis的底层存储,来替换成本较高的codis-server,并围绕pika的方案进行了

  • Golang Sync.Pool浅析2022-01-30 14:59:12

    sync pool使用来存放临时变量的一个缓冲区,但是这个缓冲区并不可靠,每次gc的时候,都会首先清除缓冲区,所以,假如一个slice仅仅存放在 Pool 中,而没有其他地方引用,则会被当成垃圾清理掉。 概念 A Pool is a set of temporary objects that may be individually saved and retrieved.

  • 《剑指Offer》24-反转链表2022-01-29 15:34:10

    反转链表的几种方法 1-最基础 func reverseList_1(head *ListNode) *ListNode { if head == nil { return nil } if head.Next == nil { return head } p := head q := p.Next s := q.Next for s != nil { q.Next = p p = q q = s s = s.Next } q.Next = p

  • Go代码规范梳理2022-01-26 18:06:26

    Go代码规范(Code Review) 总结几个开发过程中经常会犯的代码规范错误 参考链接:https://learnku.com/go/wikis/48375 注释语句 // Request 表示运行命令的请求。 type Request struct { ... // Encode 将 req 的 JSON 编码写入 w 。 func Encode(w io.Writer, req *Request) { ...

  • grpc的流模式例子2022-01-26 10:33:54

    grpc的流模式例子 工程结构: stream_grpc_test ├─client │ client.go │ ├─proto │ stream.pb.go │ stream.proto │ └─server server.go proto文件: syntax = "proto3"; option go_package = "./;proto"

  • 最强解析面试题:链表中倒数最后k个结点2022-01-25 16:36:08

    文章目录 最强解析面试题:链表中倒数最后k个结点题目代码 附录 最强解析面试题:链表中倒数最后k个结点 文章讲解 “ 链表中倒数最后k个结点 ” 经典面试题,包含思路及源码,及解惑! 题目 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。 如果

  • Build Containers From Scratch in Go用Go从零实现容器2022-01-22 23:00:07

    转载自 Ali Josie-Build Containers From Scratch in Go 2020/9/17,在过去的几年里,容器的使用量显著增加。容器的概念已经出来好多年了,但是由于Docker易于使用的命令行使得容器从2013年开始在开发者里流行(我觉得主要是可复用的镜像)。 在这个系列中,我将尝试演示容器底层是如何工作的

  • 紫色飞猪的研发之旅--11go封装http请求v22022-01-21 15:34:37

    package pkg import ( "crypto/tls" "errors" "io/ioutil" "net" "net/http" "strings" "time" ) type HTTPClient interface { Do(req *http.Request) (*http.Response, error) } var (

  • 容器监控cAdvisor原理分析2022-01-21 15:04:49

    cAdvisor是一款强大的 Docker Container 监控工具,方便容器用户,对运行中的容器进行资源使用和性能分析。用于收集、聚合、处理和导出运行中容器的信息。cAdvisor提供了对Docker容器的原生支持,并且应该支持任何其他容器类型。 Kubelet内置了对cAdvisor的支持,用户可以直接通过Kubelet

  • 【TcaplusDB知识库】Tcaplus Go SDK手册(一)2022-01-19 15:32:10

    【TcaplusDB知识库】Tcaplus Go SDK手册(一) 1 使用准备 本API是Tcaplus API的Go封装,支持Generic表的增删改查 1.1 各代码目录 pack为打包脚本 example为示例 aurotest为测试工具 其他目录为Tcaplus Go API的源码 vendor 中为依赖库的代码,需要使用git submodule init和git

  • 【TcaplusDB知识库】Tcaplus Go SDK手册(一)2022-01-14 16:32:49

    【TcaplusDB知识库】Tcaplus Go SDK手册(一) 1 使用准备 本API是Tcaplus API的Go封装,支持Generic表的增删改查 1.1 各代码目录 pack为打包脚本 example为示例 aurotest为测试工具 其他目录为Tcaplus Go API的源码 vendor 中为依赖库的代码,需要使用git submodule init和git

  • 紫色飞猪的研发之旅(十)-容器平台工作负载的扩缩容/启/停/重启开发2022-01-14 14:31:07

    前言 在研发之旅的不断深入中,愈发感到在接到需求后,画出实现的逻辑图是十分必要的。本篇将试图通过对容器平台工作负载的扩缩容/启动/停止/重启需求来验证前面一句。 需求分析 本需求可分为两大类: 1、扩缩容/启动/停止 本质是对Pod的副本数的变更操作 2、重启 本质是对 ReplicaSet

  • 用go实现队列2022-01-09 16:34:40

    队列的定义 队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构,与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出。队列有两种存储方式,分别是顺序队和链队,今天实现的是链队。 结构的定义 队列需要两个指针定位对头和队尾的位置,所以定义方式

  • golang实战-数字签名与认证2022-01-09 14:02:01

    一. 数字签名          设想一个场景:Alice 给 Bob 发送了一段消息(明天我请你吃饭),该消息使用 Bob 的公钥加密(公钥加密才能确保消息被截获后也只有 Bob 本人能用自己的私钥解密),但是由于 Bob 的公钥可能其他人也有,Tom 也可以使用 Bob 的公钥加密信息后发送给 Bob,所以 Bob

  • 如何在golang代码里面解析容器镜像2022-01-07 19:04:16

    ​简介:容器镜像在我们日常的开发工作中占据着极其重要的位置。通常情况下我们是将应用程序打包到容器镜像并上传到镜像仓库中,在生产环境将其拉取下来。然后用 docker/containerd 等容器运行时将镜像启动,开始执行应用。但是对于一些运维平台来说,对于一个镜像制品本身的扫描和分析才

  • go写入文件2022-01-04 11:36:44

    https://studygolang.com/articles/19475 在这一章我们将学习如何使用 Go 语言将数据写到文件里面。并且还要学习如何同步的写到文件里面。 这章教程包括如下几个部分: 将字符串写入文件 将字节写入文件 将数据一行一行的写入文件 追加到文件里 并发写文件 请在本地运行所有本教

  • Lua语法入门2022-01-03 21:02:11

    基础特性 lua中不需要分号作为语句的结束点 注释语句 -- 单行注释 --[[ 注释语句 ]]-- ..操作符可以用于拼接类型,拼接后的结果是string(nil不支持拼接) a = 123 .. 456 -- data type is string -- data is 123456 print("data type is " .. type(a) .. "\n" .. "data is " .. a)

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有