分类: Go

10 篇文章

Go项目基于Gitlab CI/CD实践三:Docker安装 Gitlab Runner
和k8s部署runner相比,Docker安装runner的优势 缓存,项目里用到的各种依赖,不可能每次都下载,以及构建、语法检测等都会产生缓存。在k8s runner中使用分布式存储ceph来保存这些文件,大概700m。每次使用时特别慢,大部分时间都花在下载缓存,上传缓存。当前项目整个流水线跑下来需要10多分钟。而是用docker部署的runne…
Go项目基于Gitlab CI/CD实践一:Gitlab Runner安装到K8S集群
前言 Gitlab Runner可以直接使用二进制、Docker或者k8s来部署,而使用k8s部署带来的的好处是:合理利用资源,工作容器会被调度到资源相对空闲的节点(构建是一个比较耗费资源的过程)。 创建单独的namespace gitlab-namespace.yaml apiVersion: v1 kind: Namespace metadat…
Go进阶训练营-微服务-微服务概览
微服务(微服务概览与治理) 业务场景各有不同,分享内容时不要太具体到哪个业务场景,应该找到变化中不变的部分。万变不离其宗,先把本质学好。 微服务概览 单体应用 单体应用业务复杂后,应用无法扩展,可靠性低。而且无法针对热点模块单独处理。整体资源利用率低。 微服务和SOA的关系 微服务是SOA的一种实践。 小既是美:小服务代码少,易维护、bug少、易测…
远程过程调用系统gRPC
简介 gRPC 可以将 Protocol buffers 用作其接口定义语言 ( IDL ) 和底层消息交换格式(也可以使用其他的,例如json) 远程调用,跨语言,更容易创建分布式应用和服务 和其他RPC一样,基于服务定义的思想,结合Protocol buffers+gRPC 插件,定义好服务后,服务端实现相应接口,客户端直接调用生成好的方法即可…
《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》4-6章笔记
第4条 使用Go语言原生编程思维来写Go代码 经过十几年的演进和发展,Go语言在全世界范围内已经拥有了百万级别的拥趸,在这些开发者当中,有一部分新入行的编程语言初学者,而更多的是从其他编程语言阵营转过来的开发者。由于Go语言上手容易,在转Go的初期大家很快就掌握了Go的语法。但在编写一些Go代码之后,很多人感觉自己写的Go代码很别扭,并且总是尝试在…
《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》1-3章笔记
第一部分 熟知Go语言的一切 第1条 了解Go语言的诞生与演进 1.1 Go语言的诞生 1.2 Go语言的早期团队和演进历程 1.3 Go语言正式发布并开源 一只由Rob Pike的夫人Renee French设计的地鼠(见图1-2),从此地鼠成为世界各地Go程序员的象征。Go程序员也被昵称为Gopher(后文会直接使用Gopher指代Go语言开发…
Protocol Buffers的扩展工具:Buf
解决的问题 API 设计通常不一致 依赖管理通常是事后才想到的 不强制执行向前和向后兼容性 proto文件分发是一个困难的、未解决的过程 工具生态系统是有限的 Buf Schema Registry proto文件的托管平台,方便proto文件的分发 buf CLI 一种新开发的高性能 Protobuf 编译器。 强制执行良好的 API 设计选择和…
强大的序列化工具:Protocol Buffers
概述 Protocol Buffers 为结构化数据的序列化向前兼容,向后兼容,提供了语言中立、平台无关、可扩展机制的途径。类似JSON,但比JSON更小、更快。 通过.proto文件来定义,生成接口代码、特定语言的运行库,以及数据的序列化格式。 解决了什么问题 网络包的序列化格式 ,高达几兆大小的结构化数据,适用于网络传输和长期的数据存储。面对变…
Kubernetes的client-go库
前言 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。 RESTClient 最基础的,封装了指定资源URL访问Kubernetes API的…
Google的 DI 框架 Wire
前言 以下内容来自 Wire 官方文档,花了一天把英文的 readme 啃了遍,发现存在几个问题: 记住的不多 后面遇到问题需要再来看readme,但是个人英语阅读效率太低,又要花很多时间 将来复习时,去看英文文档,没有中文的直观。 所以在这里记录以下。 介绍 Wire是一个代码生成工具,使用依赖注入自动连接组件。组件之间的依赖关系在Wire中表示…