链路jaeger client go
Go语言上手(三) | 青训营笔记
高质量编程简介及编码规范 高质量: 各种边界条件考虑完备 异常情况处理,稳定性 易读易维护 编程原则 简单性 可读性 生产力 编码规范 公共符号始终要注释 例外:实现接口的方法不需要注释 格式化 使用gofmt(官方工具)自动格式化 注释 代码作用(适合公共符号) 代码如何实现 (适合注释实现过程) ......
基于client-go实现pod 交互式terminal
基于client-go实现pod 交互式terminal 后端实现逻辑(golang) package main import ( "errors" "fmt" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" corev1 "k8s ......
Go语言入门10(异常处理)
异常处理 panic 异常处理 如果出现了panic异常,那么会停止当前函数的运行,然后会找recover()方法,如果没有的话,就会报错退出程序,如果有就会执行recover的方法体中的方法 我们可以使用defer延迟处理函数来捕获panic异常,用recover()来从错误场景中恢复,必 ......
go 计算map 差集、并集、交集
原文链接:> https://www.zhoubotong.site/post/95.html 某些业务场景可能需要实现两个或者多个map 的交差并集,一下举个简单的demo, 思路其实并不复杂: package main import "fmt" // 并集 func union(m1, m2 m ......
go语言context.Context
go语言context.Context context 是 Golang 从 1.7 版本引入的一个标准库。它使得一个request范围内所有goroutine运行时的取消可以得到有效的控制。当最上层的 goroutine 因为某些原因执行失败时,下层的 Goroutine 由于没有接收到这个信号所 ......
Go中响应式编程库RxGo详细介绍
最近的项目用到了 RxGo ,因为之前从没有接触过,特意去学了学,特此记录下。文章很多内容是复制了参考资料或者官方文档。如果涉及侵权,请联系删除,谢谢。 1、RxGo简介 1.1 基础介绍 RxGo是一个基于Go语言的响应式编程库,它提供了一种简单而强大的方式来处理异步事件流和数据流。RxGo的设计 ......
protobuf导出go时调整默认tag的方法
问题概述 在protobuf导出到golang的时候,生成的.go文件里的struct的tag是没办法灵活设置的,以下面这个message为例 test.proto syntax=proto3; package test; option go_package = ".;test"; message ......
2023-04-21:用go语言重写ffmpeg的metadata.c示例。
2023-04-21:用go语言重写ffmpeg的metadata.c示例。 答案2023-04-21: 这段 Go 代码演示了如何使用 ffmpeg-go 库中的函数来读取多媒体文件元数据,包括视频、音频等信息。它的大体过程如下: 设置环境变量以加载 FFmpeg 动态链接库 这里将 FFmpeg ......
go channel使用及其实现原理 迈莫coding
go channel使用及其实现原理 迈莫coding 简书作者 2021-01-15 15:03IP属地: 北京 目录 channel背景 channel基本用法 channel应用场景 channel实现原理 channel数据结构 channel实现方式 channel注意事项 闲聊 【迈莫c ......
使用 go-conntrack 包来实现 conntrack 会话的创建和删除
package main import ( "fmt" "time" "github.com/florianl/go-conntrack" ) func main() { // 创建 conntrack 客户端 client, err := conntrack.Dial(nil) if err != ......
go特色
1、switch case默认是break的,可以省略break关键字。 当然也可以显示break,那么就和其他语言一样了。 参考: https://www.jianshu.com/p/3a5d2e7f09a8 【话说现在简书要守不住底线了,跳出这么多垃圾广告,还是博客园干净,就是不知道能撑多久,据 ......
(转)一文带你由浅入深地解读 Go Zap 的高性能
原文:https://blog.csdn.net/EDDYCJY/article/details/117970643 简介 zap 是什么? ⚡ZAP[1] 是uber 开源的提供快速,结构化,高性能的日志记录包。 zap 高性能体现在哪里? 在介绍zap包的优化部分之前,让我们看下zap日志库的工 ......
【观察者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 观察者模式(Observer Pattern)是一种行为型模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式使用三个类Subject、Observer和Client。Subject对象带有绑定观察者到Client对象和从 ......
go类型
1、基本类型强转 // interface{}转为其他类型【当然这个得保证是这个类型,否则肯定报错。最好先断言】 var v interface{} var a int a = v.(int) //string 转为 int类型 // uint32转为int【低精度往高精度转?】 var i uin ......
MDC轻量化日志链路跟踪的若干种应用场景
"If debugging is the process of removing software bugs, then programming must be the process of putting them in." - Edsger Dijkstra “如果调试是消除软件Bug的过程,那 ......
go mod
go mod tidy 可能会修改指定的依赖版本号 go mod 的最小版本号选择的其实是选择所有 package 指定的 mod 的最大版本号 你指定了 v2.1.0, 但是依赖的某一个包指定了 v2.2.1, 最终编译就使用 v2.2.1 来编译 ......
(转)跟我一起学Go系列:日志系统从入门到晋级
原文:https://zhuanlan.zhihu.com/p/361930459 日志模块在如今的应用中地位是如日中天,开发者没有日志就相当于双目失明,对程序的运行状态无法判断。Go 也不例外提供了基础的日志调用模块:log 模块。log 模块主要提供了 3 类接口,分别是 “Print 、Pan ......
链路聚合-实验
一、实验背景 什么是链路聚合? 将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入吞吐量在各成员端口的负载分担 当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。 链路聚合在增加链路 ......
go语言中函数定义细节
// 函数名驼峰命名法: addNum // 函数名首字母大写,该函数可以在其它文件夹下被引入使用类似于(pubilc) // 首字母小写只能被本包文件使用类似于(provite) ......
Linux下搭建Go开发环境
Linux下搭建Go开发环境可以按照以下步骤进行: 1、下载最新的Go语言二进制包,可以从官网 https://golang.org/dl/ 下载。 2、将下载好的包解压缩到你想要安装的目录下,如 /usr/local/go。 3、添加环境变量,在终端中输入以下命令: export GOROOT=/ ......
交换机链路聚合与多网卡绑定(bond)
概念介绍 bonding是linux内核自带的模块,它能将Linux系统的多个网卡绑定为一个逻辑端口,同时对外提供一个统一的IP地址,目前bonding模块的工作模式共有七种mode(0~6) mode介绍 mode0 ,(balance-rr) 轮询均衡 传输数据包顺序是多个网卡轮询传输,可能会出 ......
链路聚合
一、实验背景 什么是链路聚合? 将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入吞吐量在各成员端口的负载分担 当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。 链路聚合在增加链路 ......
Go程序开发快速入门
当进行Go程序开发时,需要注意以下几点: 1、代码可读性:尽可能使用有意义的变量名和注释,确保代码易于理解和维护。 2、错误处理:Go语言有很好的错误处理机制,应该合理地处理错误,以便于排除错误。 3、内存管理:Go语言自动管理内存,但是如果存在大量的内存分配和垃圾回收,会影响程序性能,因此需要注意 ......
肖sir___项目链路了解
项目链路: 一、业务链路 二、环境架构 1、电商架构图: 保险链路: 链路有四个部分:信息采集模块、信息验证、审批、生成合同 信息采集模块:包括购买保险产品,客户个人信息1.纸质文档给客户填写,在回来录入系统2.客户直接登录网站,在线填写信息,提交3.团体购买保险,批量录入信息功能,一次把团体信息录 ......
LeetCode-Go:一个使用 Go 语言题解 LeetCode 的开源项目
在中国的 IT 环境里,大多数场景下,学习算法的目的在于通过笔试算法题。 但算法书林林总总,有时候乱花渐欲迷人眼。 杜甫有诗云:读书破万卷,下笔如有神。不管选择哪本书,只要深入学习,分层次,逐层进阶,一定可以将算法攻克。 笔者强烈推荐一个 Github 开源项目 LeetCode-Go,你不仅可以把 ......
Go中使用JWT
原文链接:https://blog.csdn.net/m0_58121644/article/details/129643351 JWT (JSON Web Tokens) 是一种基于 JSON 格式的轻量级身份验证和授权方案。在 Go 项目中使用 JWT,一般需要完成以下步骤: 1. 安装 JWT ......
Go语言入门9(defer延迟处理函数)
Defer 延迟处理函数 特点 1. defer的运行的时间实在函数体运行的最后,在return之前 1. 多个 defer 的执行顺序为“后进先出/先进后出” return 和defer 的关系 return的本质其实应该包含前后两个步骤:第一步是给返回值赋值(若为有名返回值则直接赋值,若为匿 ......
Go语言入门8(匿名函数 闭包)
匿名函数 闭包 匿名函数 顾名思义,就是没有名字的函数。。。 func(){ fmt.Println("我就是匿名函数") } 匿名函数的两种执行方法 将匿名函数赋给一个变量 定义后立即执行匿名函数 // 讲匿名函数赋给一个变量 tmp := func(){ fmt.Println("我是匿名函 ......
go语言妙用
1、利用channel关闭,实现Context.Done() 这个Context.Done()的具体实现,需要看源码: 原理是: 当contxt用完被销毁后,就会关掉这个返回的匿名chan struct{},这样Done()本身读这个channel就会返回err,即有返回值,也就满足了这个case。 ......
华为 S53300-配置链路聚合
1、多个端口配置接入类型,并加入到vlan [Quidway]port-group 1 [Quidway-port-group-1]group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/22 [Quidway-port-group-1]p ......