Go语言中 os/exec 执行命令的五种姿势

![](http://image.iswbm.com/20200607145423.png) 在线博客:http://golang.iswbm.com/ Github:https://github.com/iswbm/GolangCodingTime --- 在 Golang 中用于执行命令的库是 `os/exec`,exec.Command 函数返回一个 `Cmd` 对象,根据不同的需求,可以将命令的执行分为三种情况 1. 只执行命令,不获取结果 2. 执行命令...阅读全文

Go语言中文网 2020-11-26 21:34:54 hello_wbm

超全整理!fmt.Printf 方法速查指南

![](http://image.iswbm.com/20200607145423.png) 在线博客:http://golang.iswbm.com/ Github:https://github.com/iswbm/GolangCodingTime ## 1. fmt 的三大函数对比 `fmt` 标准库是我们在学习和编写 Go 代码,使用最频繁的库之一。 在新手阶段,通常会使用 fmt 包的 打印函数来查看变量的信息。 这样的打印函数,有三个 1....阅读全文

Go语言中文网 2020-11-26 21:33:37 hello_wbm

【go系列2】 关于go中与java C++中应该注意的语法糖以及不同点

背景最近在用golang写k8s operator(其中涉及到informer controler )用于内部调度平台用,刚好借此机会能够与java版本的 informer controller进行对比,由于之前对golang没怎么接触过,遇到了和java c++不同的语法糖,现在列举一下:具体不同golang中structgolang中没有class的概念,但是有struct,而且可以给struct增加方法,如下:type Member struct { Id int `json:"id"` ...阅读全文

Segmentfault 2020-11-26 22:32:39 鸿乃江边鸟

Linux 容器和 Namespace

如今云原生技术可以说是互联网最火的概念之一,作为云原生技术的重要基石 -- “容器” 技术,想必从业者早有学习并大量的运用在工作和日常开发中。 假如有人问你 “什么是容器?”, 你的答案是什么? 容器就是 Docker 吗?它和虚拟化技术有什么区别和联系?它的实现原理又是什么? 这篇文章主要通过 容器和虚拟化技术的对比,容器和 Linux Namespace 的关系,以及 Namespace 的初体验 三个模块让大家更了解什么是容器,以及容器实现的底层技术支撑 -- Liunx...阅读全文

Go语言中文网 2020-11-26 17:45:00 wewin

免费送书啦!细数Github大神们的开源书籍!

作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) Go 系列 2 《Mastering GO》 推荐语:本书适用于Golang程序员。您之前应该阅读有关Go的介绍性书籍。本书的内容包括但不限于并发、网络编程、垃圾回收、组合、GO UNIX系统编程、基本数据类型(Array,Slice,Map)、GO源码、反射,接口,类型方法等高级概念。阅读本书需要一定的编程经验。如果你在工作中使用Go或者业余时间爱好GO,那么这本书一定会让你对GO的理解更上一层楼。 领取地址 6 《Go语法树入...阅读全文

简书 2020-11-26 14:32:53 弗拉德x

为什么读源码之sync.Pool

前言我们为什么要读源码?因为我们只有深入到实现原理,才能了解他的优势,架构和核心原理能帮助我们快速定位问题。避免重复造轮子,借鉴思想。今天我们就来看下sync.pool的源码type Pool struct { noCopy noCopy local unsafe.Pointer // 本地固定大小的池子。等价于每个P一个池子 [p] p是索引ID localSize uintptr // 本地数组大小 // New optionally specifies a function to gene...阅读全文

Segmentfault 2020-11-26 22:32:39 xiaowei520

微服务框架Go-Micro集成Nacos实战之服务注册与发现

简介:本文主要介绍如何使用 Golang 生态中的微服务框架 Go-Micro(v2) 集成 Nacos 进行服务注册与发现。(Go-Micro 目前已经是 v3 版本,但由于某些原因项目已经更名为 nitro 具体原因大家可以去 github 中查看) 相关背景知识 Go-Micro Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。 它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底层的接口定义和基...阅读全文

简书 2020-11-26 11:33:17 阿里云云栖号

微服务框架Go-Micro集成Nacos实战之服务注册与发现

相关背景知识 Go-Micro Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。 它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底层的接口定义和基础工具,这些底层接口可以兼容各种实现。例如 Go Micro 默认通过 consul 进行服务发现,通过 HTTP 协议进行通信,通过 protobuf 和 json 进行编解码,以便你可以基于这些开箱提供的组件快速启动,但是如果需要的话,你也可以通过符合...阅读全文

简书 2020-11-26 11:33:03 阿里云技术

libp2p-rs swarm 拨号设计与实现

前面我们对go-libp2p中swarm拨号源码进行了分析(【go-libp2p源码剖析】Swarm拨号),参考go-libp2p,我们在libp2p-rs上完成swarm拨号功能的开发。功能基本上和go-libp2p保持一致,稍微做了精简,去掉了go-libp2p拨号的部分功能,如DialSync中的同步拨号限制。下面对libp2p-rs swarm拨号功能的实现做一个详细的说明。代码组织结构仓库地址:https://github.com/netwarps/libp2p-rs.git拨号相关代...阅读全文

Segmentfault 2020-11-26 22:32:38 Netwarps

有赞统一接入层架构演进

本文系云原生应用最佳实践杭州站活动演讲稿整理。杭州站活动邀请了 Apache APISIX 项目 VP 温铭、又拍云平台开发部高级工程师莫红波、蚂蚁金服技术专家王发康、有赞中间件开发工程师张超,分享云原生落地应用的经验心得,以下是张超《有赞统一接入层架构演进》分享内容。 张超,有赞中间件团队开发工程 师,网关、Service Mesh 领域的专家,热衷技术,对 Golang、Nginx、Ruby 语言等有深入的研究。 大家好,我是来自有赞的张超,有赞中间件团队的开发工程师。 今天给大家带来有赞接...阅读全文

简书 2020-11-26 03:32:47 Java互联网架构师小马

[Golang]strconv包常用函数笔记解释

strconv strconv.Quote(s string)string -> 返回字符串在go语法下的双引号字面值表示,控制字符和不可打印字符会进行转义(\t,\n等) strconv.QuoteToASCII(s string)string -> 返回字符串在go语法下的双引号字面值表示,除了上面的和非ASCII字符会进行转义 strconv.QuoteRune(r rune)string -> 返回字符r在go语法下的单引号字面值表示,控制字符,不可打印字符会进行转义(\n,\t,\xF...阅读全文

简书 2020-11-26 03:32:46 _小老虎_

goproxy 模块代理,解决 timeout 问题

一、问题复现 执行以下命令: go run main.go 发现报错 go: github.com/astaxie/beego@v1.12.2: Get "https://proxy.golang.org/github.com/astaxie/beego/@v/v1.12.2.mod": dial tcp 34.64.4.17:443: i/o timeout。 此时查看 Go 环境变量,发现 GOPROXY 这个设置的地址很容易断掉,因此需要更换 goproxy,执行下面命令: go env ...阅读全文

简书 2020-11-26 03:32:46 Wonz

一文读懂channel设计

在Go中,要理解channel,首先需要认识goroutine。 一、为什么会有goroutine 现代操作系统中为我们提供了三种基本的构造并发程序的方法:多进程、I/O多路复用和多线程。其中最简单的构造方式当属多进程,但是多进程的并发程序,由于对进程控制和进程间通信开销巨大,这样的并发方式往往会很慢。 因此,操作系统提供了更小粒度的运行单元:线程(确切叫法是内核线程)。它是一种运行在进程上下文中的逻辑流,线程之间通过操作系统来调度,其调度模型如下图所示。 1.png 多线程的并发方式,相较于多...阅读全文

简书 2020-11-26 03:32:45 机器铃砍菜刀s

Linux 运行 go 项目报错:copy_file_range: bad file descriptor

这两天在 Linux 环境部署一个 Go 项目遇到一个报错:copy_file_range: bad file descriptor。网上查找各种方法,花了两天的时间,经过一番折腾后才解决,觉得非常有必要记录一下过程。 一、问题复现 安装完 Go、配置完 Go 环境以及 Beego 框架运行 Go 项目,一直报下面的错: image 期间经过 Go 卸载重装、代码修改等一系列网上查找的解决方法,都无济于事,最终通过降 Go 版本成功运行项目,解决此问题。 二、解决方法 1. Linux 环境卸载...阅读全文

使用client-go连接k8s集群

实验介绍: 使用client-go连接k8s集群,并获取default名称空间下面的Deployment的资源列表 基础环境准备: 本次实验是在ubuntu的操作系统上面安装部署了一个单节点的k8s集群,通过client-go连接集群并操作其资源 1.使用 client-go 在 k8s 集群外操作资源,首先需要通过获取 kubeconfig 配置文件用来建立连接集群 // 声明三个变量 var err error var config *rest.Config var kubeconfig *...阅读全文

51CTO博客 2020-11-25 14:48:43 哆先生

一文读懂Channel设计

在Go中,要理解channel,首先需要认识goroutine。一、为什么会有goroutine现代操作系统中为我们提供了三种基本的构造并发程序的方法:多进程、I/O多路复用和多线程。其中最简单的构造方式当属多进程,但是多进程的并发程序,由于对进程控制和进程间通信开销巨大,这样的并发方式往往会很慢。因此,操作系统提供了更小粒度的运行单元:线程(确切叫法是内核线程)。它是一种运行在进程上下文中的逻辑流,线程之间通过操作系统来调度,其调度模型如下图所示。多线程的并发方式,相较于多进程而言要快得多。但...阅读全文

Segmentfault 2020-11-26 22:32:38 机器铃砍菜刀

2020全新升级版-Google资深工程师深度讲解Go语言

2020全新升级版-Google资深工程师深度讲解Go语言 超清原画 完整无密 MP4格式2020全新升级版-Google资深工程师深度讲解Go语言Go作为专门为并发和大数据设计的语言,在编程界占据越来越重要的地位!不论是c/c++,php,java,重构首选语言就是Go~本次课程特邀谷歌资深工程师,将Go语言使用经验总结归纳,从Go语言基本语法到函数式编程、并发编程,最后构建分布式爬虫系统,步步深入,带你快速掌握Go语言! 适合人群及技术储备要求如果你已经掌握了一门编程语言,想转型Go语言工程...阅读全文

51CTO博客 2020-11-24 21:50:31 mb5fba276727810

六星教育:哪些程序员需要学习GO语言?PHP工程师首当其冲

前段时间工作中遇到一个开发场景,PHP项目里需要使用一个第三方的功能,恰好是有一个用Golong写好的类库,如何实现不同语言之间的通信?一般来说,cat与Golang通信,使用的是单向管道。即:只能从cat向Golang传入数据,Golang输出的数据并没有传回给cat,而是直接输出到屏幕。当PHP与Golang通信时,必须引入双向管道,这样就可以形成php要传数据给Golang,同时Golang也必须把执行结果返回给php的局面。在越来越多的项目开发中,我们经常会用到多种语言,其中PHP与GO...阅读全文

简书 2020-11-25 15:46:49 最新技术分享