Go

Go Call

70 0

实现支持异步和并发的高性能客户端Call使用Call封装通道来实现异步通知 封装结构体Call用于承载一次客户端RPC调用所需信息Golang结束channel和WaitGroup可以实现非常特殊且有别于传统函数回调的结果返回方式,常用于相对耗时运算的结果获取。核心思想是利用延时信号通知来返回,可称为Call回调或完成通知模式。 Call是一个公共可访问的结构体定义,用于包装用户请求与结果,通过内部额外地加入的channel封装实现异步结果的返回。对于使用者而言,只需要知道Call的channel属性,以

Go

在 BigCache 中存储任意类型(interface{})

134 0

这篇文章也发在我的个人 博客 最近在工作中,我的任务是向我们的一个 Golang 服务添加缓存。这个服务需要传入请求以提供用于身份验证的 API key。因此,对于每个请求,该服务都会额外查询数据库以验证 API key,尽管它通常是相同的 key。这很不好。实现缓存最终比我想象的要难得多。 经过调研和工程师之间详尽讨论之后,我们认为 BigCache 最适合我们的需求。 这里有一个问题。BigCache 中的 set 方法的声明为 Set(key string, entry []byte) error。

Go

将 Go 作为脚本语言用

122 0

Go 作为一种可用于创建高性能网络和并发系统的编程语言,它的生态应用变得越来越广泛,同时,这也激发了开发人员使用 Go 作为脚本语言的兴趣。虽然目前 Go 还未准备好作为脚本语言 “开箱即用” 的特性,用来替代 Python 和 Bash ,但是我们只需要一点点准备工作就可以达到想要的目标。 正如来自 Codelang 的 Elton Minetto 所说的那样,Go 作为一门脚本语言的同时,也具有相当大的吸引力,这不仅包括 Go 本身强大的功能和简洁的语法,还包括对 goroutines 的良好支持等。

Go

阿里云go开发环境搭建过程

102 0

开通了一个阿里云来玩,记录一下环境搭建的过程。这篇文章主要介绍了阿里云go开发环境搭建过程,非常不错,具有参考借鉴价值,需要的朋友可以参考下:运行环境#切换到安装文件夹 cd /usr/local #下载go #由于墙的原因,直接下载官方的可能会失败,这里用国内一个论坛的 wget https://dl.gocn.io/golang/1.8.4/go1.8.4.linux-amd64.tar.gz #解压 tar -zxvf go1.8.4.linux-amd64.tar.gz #创建工作目录 mkdir

Go

golang 一份漂亮的Dockerfile

295 0

对于dockerfile而言,何为完美? 我认为应该满足以下三点:体积小 构建快 够安全话说不说,直接上拿走可用的Dockerfile。 FROM golang:1.13.5-alpine3.10 AS builderWORKDIR /build RUN adduser -u 10001 -D app-runnerENV GOPROXY https://goproxy.cn COPY go.mod . COPY go.sum . RUN go mod downloadCOPY . . RUN CGO_EN

Go

关于Golang的那些事(八)-- 使用共享变量实现并发

243 0

在上一篇文章中,我用goroutine和通道来实现了一种直接和自然的并发方式。在串行程序中(也就是一个程序只有一个goroutine),程序中各个步骤的执行顺序由程序逻辑来决定,比如在一系列语句中,第一句在第二句之前执行,以此类推。如果没有先后顺序,那么这两件事就是并发的。在并发调用的时候如果没有额外的同步机制的情况下,从两个或多个goroutine同时调用这个函数,它们都能正常的运行,那么我们称之为这个函数是并发安全的。 我们经常会遇到并发调用不工作的情况,包括死锁、活锁以及资

Go

DevOps CI/CD 分析(三)之K8S yaml模版配置详解

755 0

前面我们讲解了Dockerfile基础命令、编写Dockerfile,因为整个DevOps CI/CD过程所涉及的知识面比较多,所以本节我们则开始总结Kubernetes(K8S) yaml模版配置,当我们比较熟悉Kubernetes(K8S) yaml模版内容时候,那最终在编写gitlab-ci.yml文件时候就游刃有余了!Kubernetes Service&Deployment # 版本号 apiVersion: v1 # Kubernetes资源类型,服务类型 kind: Service # 元数

Go

手撸golang 仿spring ioc/aop 之3

163 0

手撸golang 仿spring ioc/aop 之3 缘起 最近阅读 [Offer来了:Java面试核心知识点精讲(框架篇)] (王磊 , 2020.6) 本系列笔记拟采用golang练习之 Talk is cheap, show me the code. Spring Spring基于J2EE技术实现了一套轻量级的 Java Web Service系统应用框架。 它有很多优秀的特性,很多公司都选择把 Spring作为产品或项目的基础开发架构。Spring的主要特性包括: 1. 轻量 2. 控制反转(I