representing zones time go

go通过API的方式操作docker

# 配置docker支持远程操作API 在Linux系统上启用Docker远程使用Docker API的步骤 ## 1、编辑Docker配置文件 打开Docker配置文件,通常位于/etc/docker/daemon.json。如果该文件不存在,则创建它。 ```bash vim /etc/dock ......
方式 docker API

go语言读取docker容器的日志

# 使用Docker SDK: 要使用Docker SDK来读取Docker容器的日志,您需要安装Docker SDK并使用其提供的函数进行操作。 ## 安装Docker SDK: ```bash go get -u github.com/docker/docker ``` ## 获取容器ID `` ......
容器 语言 docker 日志

go语言中动态读取日志

```go package main //tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端, //通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容 ,在日志收集中可以实时的监测日志的变化,Log需要换行才 ......
语言 动态 日志

Go语言实现23种设计模式

## 摘要 设计模式是一套被广泛应用于软件开发中的解决问题的经验总结,它可以帮助开发人员设计出更加灵活、可维护和可扩展的代码。本文将探讨使用设计模式的好处,并对常见的设计模式进行分类和介绍。此外,我们还将提供设计模式的相关链接,以便读者深入了解各个设计模式的细节和实例。最后,我们将探讨如何学习设计模 ......
设计模式 语言 模式

GO语言调试利器dlv快速上手

GO语言调试利器dlv快速上手 golang 安装 tar -xvf go1.15.2.linux-arm64.tar.gz -C /usr/local/go [root@centos7 ~]# ls /usr/local/go go [root@centos7 ~]# ls /usr/local/ ......
利器 语言 dlv

Go 标准库net/url

# URL 概述 ```go import "net/url" ``` url 包解析 URL 并实现了查询的转码。 URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP 、 FTP 、 SMTP )来访问,因此 URL 语法会随着方案的不同而不同。 完整 ......
标准 net url Go

go中http客户端设置当响应码为3xx时禁止自动跳转

通常在http客户端请求的时候,如果遇到响应码为3XX,并且header中也有 `Location` 字段时,go的 `net/http` 库会自动完成跳转 但是现实场景是,有时咱们需要对跳转前的数据做处理,然后再手动跳转 这个时候该怎么办呢? 在Go中,可以通过自定义http.Client的Che ......
客户端 客户 http 3xx xx

解决go中http客户端请求遇到tls: server selected unsupported protocol version 301错误

在发起请求的时候,咱们有时会遇到类似 `tls: server selected unsupported protocol version 301` 的错误 # 分析问题 这个报错是由于这个服务只支持低版本的tls协议。 TLS(Transport Layer Security)是一种用于加密和保护 ......

go中http设置忽略证书

在Go中,可以通过设置 `http.Client` 的 `Transport`属性来忽略证书验证。 默认情况下,`http.DefaultClient` 使用的是 `http.DefaultTransport` ,它对证书进行了验证。 但是你可以创建一个自定义的 `Transport` 并将其用作客 ......
证书 http

go中http如何解决跳转自动携带cookie的问题

在Go中,可以使用net/http包来进行HTTP请求,并通过设置一个Client的Jar属性来自动处理HTTP响应中的Cookie。 ```go package main import ( "fmt" "net/http" "net/http/cookiejar" ) func main() { ......
转自 cookie 问题 http

读 Go 源码,可以试试这个工具

编程发展至今,从面向过程到面向对象,再到现在的面向框架。写代码变成了一件越来越容易的事情。 学习基础语法,看看框架文档,几天时间搞出一个小项目并不是一件很难的事情。 但时间长了就会发现,一直这样飘在表面是不行的,技术永远得不到提升。 想要技术水平有一个质的飞跃,有一个很好的方法,就是读源码。 但读源 ......
源码 工具 Go

常用语言的线程模型(Java、go、C++、python3)

了解一下线程模型还是很有必要的,如果不清楚语言层面上的线程在操作系统层面怎么映射使用,在使用过程中就会不清不楚,可能会踩一些坑 ......
线程 模型 常用 python3 语言

GoLand中使用PlantUML生成Go UML图,使用go-callvis生成Go 调用关系图

1.在goland IDE中安装plantuml插件2.安装go-package-plantuml工具go get --insecure gitee.com/jscode/go-package-plantuml.git修改go-package-plantuml代码支持outputfileif opt ......
go-callvis PlantUML callvis GoLand UML

kafka-es.go

package es import ( "context" "encoding/json" "fmt" "kafka/mongo" "log" "os" "github.com/olivere/elastic" ) var client *elastic.Client var host = "htt ......
kafka-es kafka es go

kafka-mongo.go

package mongo import ( "context" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo ......
kafka-mongo kafka mongo go

VSCode - go error: gopls was not able to find modules in your workspace

gopls was not able to find modules in your workspace. When outside of GOPATH, gopls needs to know which modules you are working on. You can fix this b ......
workspace modules VSCode error gopls

java学go

数组和切片的区别? 数组是同一种数据类型元素的集合,数组在定义时需要指定长度和元素类型: 例如:[3]int [3]int{1,2,3} [...]int{1,2,3} 如果数组作为函数的参数,实际传递的是一份数组的拷贝,而不是数组的指针,在函数中修改数组元素不会影响到原始数组。 切片更加常用,它是 ......
java

go 时间错误

invalid operation: n * time.Second (mismatched types int and time.Duration) package main import "time" func main() { n := 1 time.Sleep(n * time.Second ......
错误 时间 go

go panic

panic可能原因 1. 空指针2. 直接调用panic函数3. 数组越界4. map读写并发(recover不能恢复) core dump程序出现段错误时出现的错误文件,通过该文件确认错误的位置。程序因段错误异常终止时打印堆栈信息// 开启core dump功能,不限制core文件大小ulimit ......
panic go

go strings.Builder

字符串拼接和strings.Buffer缺点 Go里面的字符串是常量,对字符串的修改会重新申请内存地址。虽然bytes.Buffer避免了字符串修改过程中的内存申请,但是最后从[]byte转成字符串时会重新内存申请。从Go 1.10开始,提供了性能更好的方法strings.Builder,与byte ......
Builder strings go

go map

map内存模型 // A header for a Go map. type hmap struct { // 元素个数,调用 len(map) 时,直接返回此值 count int flags uint8 // buckets 的对数 log_2 B uint8 // overflow 的 buc ......
map go

学的java,工作用的go?

学的java,找的java开发,进了公司却在使用go。 第一天让拉代码,我以为我拉的是java代码,没想到却是go。当时慌死了,我只听说过go,连hello world都没有go写过。既来之,则安之,我接下来就是装goland,配环境变量,好在代码跑起来了,这个项目使用go+Gin来进行开发,甚至连 ......
java go

go context

使用场景 在协程之间传递上下文 context接口 type Context interface { // 返回绑定当前context的任务取消的截止时间 // 如果没有设定期限,将返回ok == false Deadline() (deadline time.Time, ok bool) // 绑 ......
context go

go目录结构和交叉编译

环境变量 GOROOT:GO语言的安装路径GOPATH:项目目录GOBIN:执行go install go文件时,生成可执行文件的路径,通常设置为GOPATH/bin。 GOPATH目录结构 GOPATH/src目录下放源代码文件。GOPATH/pkg目录下放执行go install 目录名后生成的 ......
结构 目录

go单元测试显示测试用例代码覆盖率

执行单个目录所有测试用例并生成覆盖率 go test -gcflags=all=-l -coverprofile=$GOPATH/bin/c.out . go tool cover -html=$GOPATH/bin/c.out -o=$GOPATH/bin/tag.html 执行单个测试用例并生成 ......
覆盖率 单元 代码

go垃圾回收

三色标记法 三色标记法配合写屏障和辅助GC。1.初始状态所有对象都是白色。2.从根出发扫描,将引用的对象标记为灰色。3.分析灰色对象是否引用了其他对象,自身标记为黑色,将它引用的其他对象标为灰色4.重复步骤3,直到灰色对象队列为空。此时白色对象即为垃圾,进行回收。 写屏障:每一轮GC开始时会初始化屏 ......
垃圾

GO协程

goroutine 协程本意是coroutine,go协程是goroutine。线程分为内核态线程(内核线程)和用户态线程(协程)。线程由CPU调度是抢占式的,协程由用户态调度是协作式的(主动让出才执行下一个)。 N:1(N个用户线程绑定1个内核线程) 例子:python的gevent优点:协程切换 ......

Go并发编程实战 第三章 并发编程综述

> 经过前两章的基本认识,终于开始并发编程了。 # 并发编程基础 ## 基本概念 1. 串行和并行程序:串行程序特指只能被顺序执行的指令列表,并发程序则是可以被并发执行的两个及以上的串行程序的综合体。 2. `并发和并行`: 并行是指两个或者多个事件在**同一时刻**发生;而并发是指两个或多个事件在 ......
实战 第三章

说说 Go 语言的坑(二)

上一篇文章 [说说 Go 语言 for-range 的坑](https://imlht.com/archives/187/) 说的是 for-range 的,工作中,其实还是遇到蛮多奇奇怪怪的问题,这里也顺便整理了一下,就当作是续集:) 先继续看 for-range 的另一个坑: #### 下面代码 ......
语言 Go

go text模板

package installimport ( "bytes" "fmt" "strings" "text/template" "github.com/fanux/sealos/pkg/logger" "sigs.k8s.io/yaml")var ConfigType stringfunc setK ......
模板 text go