go-gprc gprc go

go src - sync.Map

前言 在并发编程中,我们经常会遇到多个goroutine同时操作一个map的情况。如果在这种情况下直接使用普通的map,那么就可能会引发竞态条件,造成数据不一致或者更严重的问题。 sync.Map是Go语言中内置的一种并发安全的map,但是他的实现和用法与普通的map完全不同,这篇文章将详细介绍这些 ......
sync Map src go

go反射使用及proto协议字段随机动态赋值

1. 基本概念 Go 语言的反射是一种在运行时动态访问程序元数据的能力。反射可以让我们在运行时检查类型和变量,例如它的大小、方法和动态的值等。这种机制让我们可以编写更加通用的函数和类型,而不需要关心具体的类型。 在 Go 语言中,反射的实现主要依赖于两种类型:Type 和 Value。这两种类型都定 ......
字段 动态 proto

goorm php环境安装go 1.20

1、下载 golang 最新版本1.20.5,并安装到/usr/local/go目录 wget https://golang.google.cn/dl/go1.20.5.linux-amd64.tar.gztar zxf go1.20.5.linux-amd64.tar.gztar -C /usr/ ......
环境 goorm 1.20 php 20

go使用consul-api注册服务、注销服务

# go使用consul-api注册服务、注销服务 标签(空格分隔): go,consul 安装包 go get github.com/hashicorp/consul/api 注册、注销服务 package initialize import ( "fmt" "github.com/hashico ......
consul-api consul api

引用 github.com/segmentio/kafka-go v0.4.39 出现的 copy 队列溢出的问题

在高并发 (40k~60k) rps 的情况下,github.com/segmentio/kafka-go v0.4.39 该库频繁出现 panic: runtime error: slice bounds out of range [:4636] with capacity 4096 gorout ......
队列 segmentio kafka-go github 问题

go演示GRPC的用法

首先,需要确保已经安装了Go编程语言和gRPC库。可以使用以下命令安装gRPC库: ``` go get -u google.golang.org/grpc ``` 下面是一个基本的gRPC示例,其中包括服务器端和客户端。示例演示了一个简单的计算器服务,客户端可以发送两个数字给服务器,然后服务器返回 ......
GRPC

go爬虫 简单请求

demo1.go package main import ( "fmt" "io/ioutil" "net/http" ) func fech(url string) string { client := &http.Client{} req, _ := http.NewRequest("GET", ......
爬虫

Kubernetes编程——client-go基础—— 深入 API Machinery —— Scheme

深入 API Machinery —— Scheme https://github.com/kubernetes/apimachinery/tree/release-1.27/pkg/runtime 我理解意思是说: Scheme 是 Kubernetes client-go 库中的一个核心组件,用 ......
Kubernetes client-go Machinery 基础 client

go windows编译linux可执行文件

在cmd或者powershell执行以下命令 set GOARCH=amd64 go env -w GOARCH=amd64 set GOOS=linux go env -w GOOS=linux 然后正常go build即可 再切换回windows go env -w GOARCH=amd64 g ......
windows 文件 linux go

Kubernetes编程——client-go基础—— 深入 API Machinery —— REST 映射

深入 API Machinery —— REST 映射 GVK 与 GVR 之间的映射关系被称为 REST 映射。 我理解意思是说: 在 Kubernetes 中,RESTMapping(REST 映射)用于将 GroupVersionKind(GVK)与 GroupVersionResource( ......
Kubernetes client-go Machinery 基础 client

go-选项卡模式

package main import "fmt" const ( defaultName string = "张建平" defaultAge int = 27 defaultHigh int = 175 ) type User struct { Name string Age int High i ......
模式 go

go 正则解析字符串的时间窗范围 通过分组分别取年、月、日、时、分、秒

背景 需求: 将时间窗开始和结束时间提取出来,存储到数据库 难点: 获取割接公告操作时间窗范围, 格式有一定动态变化,日期、月份偶尔是1位数, bodyContent1 := "您好!由于XXXXX机房一台网络设备存在安全隐患,我司计划于 2023年06月30日 00:30 - 03:00 到 对网 ......
正则 字符串 字符 范围 时间

Kubernetes编程——client-go基础—— 工作队列(workqueue)

工作队列(workqueue[wɜːk][kjuː]) https://github.com/kubernetes/kubernetes/tree/release-1.27/staging/src/k8s.io/client-go/util/workqueue 我理解意思是说: 这里说的 "工作队列 ......
队列 Kubernetes client-go workqueue 基础

go随笔

1)声明在函数内部,是函数的本地值,类似private 2)声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect 3)声明在函数外部且首字母大写是所有包可见的全局值,类似public 一个Go工程中主要包含以下三个目录: src:源代码文件 pkg:包文件 bin: ......
随笔

Kubernetes编程——client-go基础—— Informer 和缓存

Informer 和缓存 k8s 客户端接口中包含一个名叫 Watch 的动作,它提供了对集群对象变化(添加、删除或更新)进行响应的接口。Informer 在 Watch 的基础上对常见的使用场景提供了一个更高层的编程接口,包括:内存缓存以及通过名字对内存中的对象或属性进行查找的功能。 ......
缓存 Kubernetes client-go Informer 基础

go 和 php 性能如何进行对比?

PHP性能很差吗? 每次讲到PHP和其他语言间的性能对比,似乎都会发现这样一个声音:单纯的性能对比没有意义,主要瓶颈首先是数据库,其次是业务代码等等。 好像PHP的性能真的不能单独拿出来讨论似的。但其实一份关于Workerman的基本性能对比中发现,Workerman比Go还要强。 该测试的原文在这 ......
性能 php go

Kubernetes编程——client-go基础—— Watch

Watch https://github.com/kubernetes/apimachinery/blob/release-1.27/pkg/watch/watch.go 我理解意思是说:k8s.io/apimachinery/pkg/watch/watch.go 文件是 Kubernetes 中用 ......
Kubernetes client-go 基础 client Watch

在 Java、Python、JavaScript 和 Go 中拥抱异步

​ 本文讨论了四种语言的异步,强调了它在创建高效、响应迅速的应用程序中的作用。 作为一名拥有多年主要使用 Java 工作经验的软件开发人员,当我最近为一个新项目切换到 Python 时,我发现自己很感兴趣。这种转变促使我探索各种语言的异步编程世界,包括 Java、Python、JavaScript ......
JavaScript Python Java Go

Kubernetes编程——client-go基础—— TypeMeta

TypeMeta https://github.com/kubernetes/apimachinery/blob/release-1.27/pkg/runtime/types.go runtime.Object 只是一个接口,我们想了解它具体时间怎么实现的。k8s.io/api 中的 Kuberne ......
Kubernetes client-go TypeMeta 基础 client

golang之go-spew

我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的原因。 对于这类调试,我们用的比较多的一个是断点调试,还有是通过打印日志输出。通过日志 ......
go-spew golang spew go

Kubernetes编程——client-go基础—— Go语言中的 Kubernetes 对象介绍

Go语言中的 Kubernetes 对象介绍 我们接下来更详细了解在 Go 语言的语境下的 Pod(或者其他任何 Kubernetes 资源)是什么样的? Kubernetes 中的资源(或者更准确说是对象)都是某种类型的实例。 ......
Kubernetes client-go 对象 语言 基础

一文了解Go语言的I/O接口设计

# 1. 引言 I/O 操作在编程中扮演着至关重要的角色。它涉及程序与外部世界之间的数据交换,允许程序从外部,如键盘、文件、网络等地方读取数据,也能够将外界输入的数据重新写入到目标位置中。使得程序能够与外部环境进行数据交换、与用户进行交互、实现数据持久化和文件操作、进行网络通信等。因此,了解和掌握I ......
接口 语言

关于Go切片底层原理 看这篇文章就够了

在Go语言中,切片作为一种引用类型数据,相对数组而言是一种动态长度的数据类型,使用的场景也是非常多。但在使用切片的过程中,也有许多需要注意的事项。例如切片函数传值、切片动态扩容、切片对底层数组的引用问题等等。今天分享的主题,就是围绕切片进行。 ......
底层 篇文章 原理

Go命令行工具cobra

## 关于 Cobra 是 Go 的 CLI 框架。它包含一个用于创建功能强大的现代 CLI 应用程序的库,以及一个用于快速生成基于 Cobra 的应用程序和命令文件的工具。 Cobra 由 Go 项目成员和 hugo 作者 [spf13](https://github.com/spf13) 创建, ......
命令 工具 cobra

go mod tidy 提示错误 go mod tidy -go=1.16 && go mod tidy -go=1.17

## 错误概览 执行 `go mod tidy` 时,提示如下错误 ```bash > go mod tidy github.com/myrepo/myproj imports go.k6.io/k6 imports go.k6.io/k6/cmd imports github.com/fatih/ ......
tidy go mod amp 错误

Go语言中的自定义函数类型

1. 函数类型的基本概念 在Go语言中,函数类型是一种将函数作为值的数据类型。与其他类型一样,函数类型可以被声明、赋值给变量,作为参数传递和作为返回值返回。通过函数类型,我们可以将函数看作一种可执行的对象,对其进行操作和处理。 2. 自定义函数类型的语法 在Go语言中,我们可以使用type关键字来定 ......
函数 语言 类型

【Go/golang】原生监听处理http请求的写法

原文地址:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/03.4.md 由于自己经常忘了怎么写,而Github又经常抽风,所以这里做个备份 ``` package main import ( " ......
写法 golang http Go

go语言递归函数及defer

递归函数 简单来说,递归就是函数自己调用自己。有2种实现方式,一种是直接在自己函数中调用自己,一种是间接在自己函数中调用的其他函数中调用了自己。 递归函数需要有边界条件、递归前进段、递归返回段 递归一定要有边界条件,当边界条件不满足时,递归前进;当边界条件满足时,递归返回 func fib(n in ......
函数 语言 defer

go:接口、并发与协程、信道、缓冲信道、mutex、异常处理

[toc] ### 接口 ```go 1.实现多个接口 2.接口嵌套 3.接口零值 package main import "fmt" // 接口 //1 实现多个接口 具体类型可以赋值给多种接口类型 //type Animal interface { // run() //} // //type ......
信道 接口 mutex

go:数组和切片、可变长参数、maps、字符串、指针、结构体、方法、接口

[toc] ### 数组和切片 #### 数组 ```go # 1 定义,初始化,使用 # 2 数组是值类型 数字,字符串,布尔,数组,都是值类型,真正直接存数据 切片,map,指针 引用类型,是个地址,指向了具体的值 # 3 数组长度 # 4 循环打印数组 # 5 多纬数组 # 6 数组定义并赋初 ......
数组 字符串 指针 字符 接口