
go
russle
Java开发工程师
**注意事项**:本博客所有代码是为了介绍相关内容而编写或者引用的,示例代码并非可直接用于生产的代码。仅供参看而已。
展开
-
go生成文件md5、sha1摘要简单示例
golang生成文件的MD5值原创 2023-08-19 18:54:05 · 1128 阅读 · 0 评论 -
使用gorm查询数据库时reflect: reflect.flag.mustBeAssignable using unaddressable value
使用gorm写了个小的demo, 插入和查询单个数据库都正确显示,在查询all数据是报错了。重点信息:using unaddressable value错误信息截图原创 2022-06-18 17:13:06 · 646 阅读 · 3 评论 -
Go有限状态机类库使用简介
FSM是finite state machine的缩写,有限状态机是我们在应用开发中经常使用的一种模型,这里简要介绍go语言中https://github.com/looplab/fsm原创 2022-06-04 21:46:36 · 1249 阅读 · 0 评论 -
重启docker service时为什么一般情况下不影响已经运行的容器?
如果是所示,这是docker自身的一个属性决定,该属性默认使true,因此当我们执行systemctl docker restart时已经运行的容器未受影响。原文在: https://docs.docker.com/config/containers/live-restore/中文大意‘:/etc/docker/daemon.json配置文件中设置了{ "live-restore": true}在升级小版本或者重启时,只要不改变daemon-level级别参数,是不会影响已运行容器的Liv原创 2022-02-20 23:34:00 · 3167 阅读 · 1 评论 -
k8s client-go访问service的informer示例2之创建NewSharedIndexInformer
这个实例通过svcInformer := cache.NewSharedIndexInformer创建informer, 不是直接使用系统也有coreinformers.ServiceInformerpackage mainimport ( "flag" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachin原创 2022-02-20 23:24:31 · 776 阅读 · 0 评论 -
k8s client-go访问service的informer示例
本代码片段展示如何通过informer监听service和service对应endpoint的变化package mainimport ( "flag" "fmt" "k8s.io/client-go/util/homedir" "path/filepath" "time" "k8s.io/client-go/informers" coreinformers "k8s.io/client-go/informers/core/v1" "k8s.io/client-go/kubernet原创 2022-02-20 23:17:32 · 953 阅读 · 0 评论 -
快速更改k8s node condition
问题背景为了测试某些内容需要不管更改k8s node condition的status 以及message中内容, 通过k8s go client肯定可以修改,但是需要写代码以及针对不同平台进行构建,本着方便快速的目的,shell脚本命令是最快速的方式主要步骤# get k8s access cert and keycat /root/.kube/config |grep client-certificate-data|awk '{print $2}'|base64 -d >/root/.ku原创 2021-11-07 23:16:30 · 956 阅读 · 0 评论 -
Go 自定义排序示例
背景go提供内置几种类型的排序函数,例如 sort.Strings、sort.Float64、 sort.Ints, 但是我们在业务中需要根据业务属性进行排序例如,某个struct中age, createTime 或者priority等等。 本文参考https://gobyexample.com/sorting-by-functions, 给出一个简单自定义排序示例实现本示例中字符串是固定个是的{正整数}-{字符串}, 排序是之和正整数相关,与后面的字符串无关,因此需要先提取其中的正整数,然后转为数原创 2021-07-24 22:05:36 · 353 阅读 · 0 评论 -
Gin通过jwt方式实现登录验证基本示例
本文使用Go Gin框架搭建的webserver示例,其中使用jwt进行登录验证,至于cookies session jwt token的区别,优缺点不再本位讨论范围内。简单总结:使用jwt更方便,具有一定程度安全性,具体使用Gin搭建webserver提供API服务部分就不赘述了, 可以参考其他博客介绍。完整代码在这里,代码结构1 定义jwt格式部分所需信息和Gin middleware在标准的Claims信息之外添加一些自定义信息// 载荷,可添加自己需要的一些信息type Custom原创 2021-02-28 13:58:45 · 4471 阅读 · 1 评论 -
基于Gin的go webserver示例工程
说明:本工程为最近本示例工程, 没有添加项目需要的启动参数,没有与数据库的交互, User对象的定义也只是个示例。但是包含了从Query path 以及body获取参数的示例。整体工程在这里代码结构1, 创建webserverpackage mainimport ( "flag" myrouter "ginportdemo/pkg/router" "github.com/gin-gonic/gin" "k8s.io/klog" "net/http" "time")/* G原创 2021-02-27 23:39:02 · 736 阅读 · 0 评论 -
k8s访问pod基础示例
好久没有写博客了。 借着春节有点时间,补充一些内容。近期关于k8s的都是非常基础的内容,基本上都是k8s client api的基础使用,仅供参考。没有架构和设计精髓的讨论。环境我Windows上安装了2台linux虚拟机,然在linux上安装 1.15.0版本的k8s, 开发环境在Windows7上。工程结构非常简单的一个go工程,没有输入参数, 默认从当前用户的.kube目录读取config文件访问k8s,具体代码可以参看https://github.com/yqbjtu/mygotutori原创 2021-02-10 19:07:21 · 798 阅读 · 1 评论 -
Go interface强制类型转换的小demo
一个简单的go语言interfae强制转换例子,非常初级的强制转换demo。非产品代码,仅供参考。package mainimport ( "fmt" "log")func FilterByType(arr []interface{}, deviceType string, myFunc func( interface{}, string) bool) []interface{} { var result []interface{} if len(arr)==0 { result =原创 2020-06-06 16:30:58 · 2374 阅读 · 0 评论 -
go解析yaml文件示例
yaml文件已经成为配置的一种主要格式,因此各种语言都提供了相应的解析类库, 本文就以go语言中常用的yaml解析库 gopkg.in/yaml为例,简单展示一下如何解析yaml文件具体代码在这里:具体思路1, 直接将yaml文件内容解析为我们定义好的struct, 这种简单方便,想获取对应值,可以直接获取。2, 将yaml文件解析为map[string] interface{}, 然后根据需要层层解析, 主要优点不需要提前定义yaml文件的struct,可以随时更改yaml文件格式。具体实现a原创 2020-05-17 13:12:50 · 7896 阅读 · 0 评论 -
go语言中的反射Reflect初探
我们先看看什么是反射,它有什么用。我们先看卡wiki上关于反射的介绍。 链接为https://en.wikipedia.org/wiki/Reflection_(computer_programming)In computer science, reflection is the ability of a process to examine, introspect, and modify i...原创 2020-05-01 22:16:26 · 642 阅读 · 0 评论 -
vs code golang代码自动补全
VS Code也是一款非常不错的IDE工具, 在没钱购买GoLand,使用vs code也可以较好进行go开发工作。 本文简单介绍如何在vs code中启用go语言的代码自动补全功能。我的vs code版本信息, 我是在Windows上使用vs code。Version: 1.44.2 (user setup)Commit: ff915844119ce9485abfe8aa9076ec76b...原创 2020-05-01 12:30:45 · 24763 阅读 · 3 评论