
Golang
可问春风丶
这个作者很懒,什么都没留下…
展开
-
Golang协程中调用Python3
如何在Go中调用Python3的代码不再赘述,网上一大把。但是在协程中多次调用Python函数会panic。python demo:# coding: utf-8def test(a, b): return a + bGoalng demopackage mainimport ( "fmt" "sync" "github.com/DataDog/go-python3")func init() { python3.Py_Initialize()}var PySt原创 2021-12-27 17:28:32 · 1512 阅读 · 1 评论 -
Golang中channel的原理解读
数据结构channel的数据结构在$GOROOT/src/runtime/chan.go文件下:type hchan struct { qcount uint // 当前队列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf unsafe.Pointer // 环形队列指针 elemsize uint16 // 每个元素的大小 closed uin原创 2021-10-11 21:12:21 · 429 阅读 · 0 评论 -
golang实现kubectl apply和kubectl delete
如何使用golang在docker内或集群内实现kubectl apply -f或kubectl delete -f命令?在网上找了一圈没找到,自己研究了下。package mainimport ( "bytes" "context" "errors" "flag" "fmt" "io/ioutil" appsv1 "k8s.io/api/apps/v1" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/原创 2021-02-25 09:54:03 · 1281 阅读 · 0 评论 -
golang路由拦截器
在golang中实现路由拦截有多种方法,比如一般来说框架都会实现拦截器或者中间件,本文是未采用web框架时一种拦截器的实现。在http.HandleFunc()的源码中可以看到第二个参数是一个func:func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler)}所以这里可以定义一个map,键值分别是路由和处理函数:ty原创 2020-06-09 10:31:39 · 2538 阅读 · 0 评论 -
golang操作redis和lua脚本实现线程安全操作
package mainimport ( "fmt" "github.com/go-redis/redis" "log" "sync")func createScript() *redis.Script { script := redis.NewScript(` local goodsSurplus local flag local existUserIds = tostring(KEYS[1]) local memberUid = tonumber(原创 2020-06-08 22:22:22 · 4248 阅读 · 0 评论 -
gRpc中的TLS验证
/*-=权认证gRpc中默认支持两种授权,SSL/TLS认证方式、基于Token的认证方式1.1 SSL/TLS认证方式SSL全称是Secure Sockets Layer,又被称之为安全套接字层,是一种标准安全协议,用于在通信过程中建立客户端与服务器之间的加密连接。TLS的全称是Transport Layer Security,TLS是SSL的升级版本。在使用额过程中,往往习惯于将SSL和TLS组合在一起,统称为SSL/TLS。简而言之,SSL/TLS是一种用于网络通信中加密的安全协议。1.2原创 2020-06-07 12:54:32 · 2235 阅读 · 0 评论