Go
文章平均质量分 51
Time-Traveler
这个作者很懒,什么都没留下…
展开
-
golang promethus consul 服务发现
golang promethus consul 服务发现原创 2022-08-30 16:25:39 · 630 阅读 · 1 评论 -
Golang consul 服务注册与发现
下载运行consul:consul下载地址:https://www.consul.io/downloads命令行运行:consul.exe agent -dev服务注册:package mainimport ( "fmt" "github.com/go-basic/uuid" consulapi "github.com/hashicorp/consul/api" "net/http")const ( consulAddress = "127.0.0.1:8500" loca原创 2021-08-10 23:35:24 · 816 阅读 · 0 评论 -
Go-Micro undefined: balancer.PickOptions
# go.etcd.io/etcd/clientv3/balancer/picker /home/user/go/src/go.etcd.io/etcd/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions原创 2021-08-10 17:50:21 · 598 阅读 · 0 评论 -
Golang GRPC简单使用
什么是gRPC?rpc框架一般基于tcp或者http协议实现。基于http的rpc框架有许多优点,HTTP/1.x协议简单明了,是目前最流行的应用层协议,有着非常成熟且完善的各种基础设施,如负载均衡、监控、代理等,适用性广泛,各个设备系统均有实现。但是缺点也很明显,就是HTTP/1.x采用的是文本协议,解析速度慢,带宽占用高。而且request/response的通信方法导致整体效率不高。gRPC基于HTTP2协议,HTTP2 使得grpc 能够更好的适用于移动客户端和服务端通信的使用场景,并且连接多路.原创 2021-08-10 00:25:53 · 485 阅读 · 0 评论 -
Golang+Python Hbase Thrift1 基本使用
go thrift原创 2021-06-09 14:53:23 · 418 阅读 · 1 评论 -
golang hashedSecret too short to be a bcrypted password
记录一下这个疏忽造成的小问题:具体错误:crypto/bcrypt: hashedSecret too short to be a bcrypted passwordbcrypt.CompareHashAndPassword([]byte(u.PassWord), []byte(user.PassWord))1.第一个参数是已经经过bcrypt.GenerateFromPassword处理的密码2.第二个参数是请求提交的密码确认代码无误后依旧提示 hashedSecret too short .原创 2021-05-30 00:47:24 · 1747 阅读 · 1 评论 -
Golang Epoll初体验
本文参考自:https://colobu.com/2019/02/23/1m-go-tcp-connection/,本文只是简单运行一个服务端的demo,更多信息请浏览原文关于Golang的epoll:Go的net方式在Linux也是通过epoll方式实现的,为什么我们还要再使用epoll方式进行封装呢?原因在于Go将epoll方式封装再内部,对外并没有直接提供epoll的方式来使用。也有一些封装了epoll的库如:evio 等Epoll server实现:package mainimport.转载 2021-05-15 14:37:42 · 1397 阅读 · 1 评论 -
Golang Redis 基本操作
Golang Redis原创 2021-05-11 11:59:57 · 601 阅读 · 0 评论 -
golang kafka sarama示例
消费者:package mainimport ( "fmt" "github.com/Shopify/sarama" KafkaCluster "github.com/bsm/sarama-cluster" "log" "os" "os/signal" "time")func main(){ KafkaConsumerCluster("")}func KafkaConsumerCluster(consumerId string) { brokers := []stri原创 2021-04-30 01:10:44 · 1102 阅读 · 0 评论 -
Zookeeper之CRUD(Golang)
https://www.cnblogs.com/zhichaoma/p/12640064.html原创 2021-04-29 01:21:30 · 548 阅读 · 1 评论 -
GoLang 函数返回值
看看下面几个函数返回结果都是什么:package mainimport "fmt"func f0() (int) { var r int defer func() { r++ }() return r}func f1() (r int) { defer func() { r++ }() return 0}func f2() (r int) { t := 5 defer func() { t = t + 5 }() return t}func f.原创 2021-03-11 17:06:28 · 1168 阅读 · 0 评论 -
Golang调度器的GMP模型
本文转自:https://zhuanlan.zhihu.com/p/261590663 尊重原创前言:首先看以下并发和并行概念: - 并发(concurrent): 逻辑上处理同时的任务的能力 - 并行(parallel): 物理上同一时间处理不同任务一般来说,并发对应在单个处理器,通过串行的时间片分配(time slice)来执行任务。而并发,对应多个处理器,来执行不同的任务。Golang中,执行多个任务时,Goroutine会创建不同的线程,也会将任务单元分配给其他线程来执行,这像是并发和并转载 2021-03-10 00:45:32 · 285 阅读 · 0 评论 -
网易云盾接入
官方教程:传送门网易云盾验证码:captchaId 需要自己申请,只是玩玩儿的话可以从网易云盾的产品分析出Idpackage mainimport ( "github.com/gin-gonic/gin" "net/http")func main(){ engine := gin.Default() engine.LoadHTMLGlob("templates/*") engine.GET("/yundun", func(context *gin.Context) { c.原创 2021-01-05 23:54:16 · 1368 阅读 · 1 评论 -
Golang WebSocket 以及多个客户端简单实现
需要用到的包:github.com/gorilla/websocket服务端代码:package mainimport ( "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "net/http")var upGrader = websocket.Upgrader{ CheckOrigin: func (r *http.Request) bool { return true },}//webSocket.原创 2020-12-26 00:22:04 · 7482 阅读 · 0 评论 -
Golang for range的坑
https://blog.csdn.net/somanlee/article/details/107881231转载 2020-12-25 12:41:11 · 447 阅读 · 0 评论 -
Golang http添加cookie
三种添加Cookie的方式(有其他方式请留言告知):服务端代码:服务端很简单,请求时有Cookie则返回cookie的结果,withcookie为ture,没有则设置cookie,withcookie为falsepackage mainimport ( "fmt" "github.com/gin-gonic/gin")func main(){ engine := gin.Default() engine.GET("/cookie_test", func(context *gin.C.原创 2020-12-24 14:54:40 · 6140 阅读 · 0 评论 -
Golang otto JS解释器简单使用
以下用法已经基本能满足简单的js参数逆向:package mainimport ( "fmt" "github.com/robertkrimen/otto")func main() { vm := otto.New() vm.Run(` function withParamsFunc(x, K) { x += ''; for (var N = [], T = 0; T < K.length; T++) N[T % 4] ^= K.charCode.原创 2020-12-24 12:49:37 · 1660 阅读 · 0 评论 -
Golang 百度云扫码登录
文件结构:http_client.go代码如下:package clientimport ( "bytes" "fmt" "io" "io/ioutil" "net/http" "net/http/cookiejar" "net/url" "strings" "time")// HTTPClient http clienttype HTTPClient struct { *http.Client UserAgent string}var ( UserAgen原创 2020-12-24 12:25:26 · 2150 阅读 · 5 评论 -
Golang 翻转含有中文、数字、英文字母的字符串
本文转自:https://mp.weixin.qq.com/s?__biz=MzAwMDAxNjU4Mg==&mid=2247483664&idx=1&sn=23a0cf8a78b1d9c30b2e3bc102bf421e&chksm=9aee28b9ad99a1af6c879ba4b1f6439e4c21c363f0a668f322c082ca334b62255507828f66d4&token=2092782362&lang=zh_CN#rd,请大家尊重原转载 2020-11-30 10:16:45 · 748 阅读 · 0 评论 -
Golang RPC初体验
本篇转自:https://zhuanlan.zhihu.com/p/183231254 请大家尊重原创RPC概念: 在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC 是一种服务器-客户端( Client/.转载 2020-11-25 15:22:17 · 193 阅读 · 0 评论 -
Golang Socks5 编程体验
方式一:httpTransport.Dial 这种方式已经过时了,推荐使用第二种方法package mainimport ( "fmt" "golang.org/x/net/proxy" "io/ioutil" "log" "net/http" "os")func main() { // create a socks5 dialer dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:8786", nil, proxy.Direct)原创 2020-12-28 18:56:58 · 512 阅读 · 0 评论 -
Golang 原生Sql
记录基本的CRUD:package mainimport ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3")func main() { fmt.Println("打开数据") db, err := sql.Open("sqlite3", "F:\\test\\raw_sql.db") checkErr(err) fmt.Println("生成数据表") sql_table := `CREATE TABLE IF.原创 2020-11-20 18:39:33 · 1163 阅读 · 0 评论 -
Golang Xorm初体验
具体使用请参考文档:https://gobook.io/read/gitea.com/xorm/manual-zh-CN/package mainimport ( "fmt" "github.com/go-xorm/xorm" _ "github.com/mattn/go-sqlite3" "math/rand" "strconv" "time")type User struct { Id int64 Name string Age int Password.原创 2020-11-20 18:35:31 · 253 阅读 · 0 评论 -
解析URL(Golang+Python)
URL格式:在互联网中,任何一个可访问的文件或文档都具有一个唯一的地址,这种地址称为统一资源定位符(Uniform Resource Locator,简称URL),其格式如下: scheme://host[:port][path][:parameters][?query]#fragmentscheme(协议):包括http、https、ftp 以及 file。hostname(主机名):可以是主机名、域名、服务器IP。例如百度的域名:www.baidu.comport(端口号):省.原创 2020-11-19 10:53:21 · 407 阅读 · 0 评论 -
gin+vue实现m3u8视频播放
本篇简介: 本篇采用Golang的gin框架作为后台,简单设置静态路径和跨域,提供服务,前端采用vue,用vue-video-player进行播放,.m3u8以及.ts采用ffmpeg进行生成。一、ffmpeg生成.m3u8以及.ts:ffmpeg.exe -re -i F:\test\mda-jdru2en34rfx8we1.mp4 -c copy -f hls -hls_list_size 0 -bsf:v h264_mp4toannexb F:\t原创 2020-10-16 01:01:36 · 1876 阅读 · 0 评论 -
Android+OkHttp3+Golang(Gin)+OpenSSL单双向校验(四)
Golang双向校验服务端服务端需要校验客户端的证书,代码如下:package mainimport ( "crypto/tls" "crypto/x509" "github.com/gin-gonic/gin" "github.com/unrolled/secure" "io/ioutil")func TlsHandler() gin.HandlerFunc { return func(c *gin.Context) { secureMiddleware := secu原创 2020-09-03 01:08:50 · 410 阅读 · 0 评论 -
Android+OkHttp3+Golang(Gin)+OpenSSL单双向校验(三)
Android 单向校验原创 2020-09-03 01:07:52 · 278 阅读 · 0 评论 -
Android+OkHttp3+Golang(Gin)+OpenSSL单双向校验(二)
Golang gin 搭建https服务我把证书放在了F:\test\目录下package mainimport ( "github.com/gin-gonic/gin" "github.com/unrolled/secure")func TlsHandler() gin.HandlerFunc { return func(c *gin.Context) { secureMiddleware := secure.New(secure.Options{ SSLRedirect原创 2020-09-01 01:22:29 · 495 阅读 · 0 评论 -
Golang切片
在64位的机器上,golang切片长度24位,指针8位,长度8位,容量8位数组切片map都是传指针什么是切片(slice)简单的说,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变量: 1>.一个指向原生数组的指针(point):指向数组中slice指定的开始位置; 2>.数组切片中的元素个数(len):即slice的长度; 3>.数组切片已分配的存储空间(cap):也就是slice开始位置到数组的最原创 2020-08-27 15:02:50 · 335 阅读 · 0 评论 -
Vue+Gin之jsonp跨域
前端jsonpaxios建议采用CORS的方式vue-jsonp方式:添加依赖:npm install vue-jsonp --save在main.js中添加:import VueJsonp from 'vue-jsonp'Vue.use(VueJsonp);在组件中使用jsonpFetch(){ const url = 'http://127.0.0.1:8081/jsonp'; this.$jsonp(url,{ }).then((data)=&g原创 2020-08-25 01:15:48 · 261 阅读 · 0 评论 -
前(Vue)后(Gin)端Rsa加密
说明本篇相当于是一个hello world,是一个系列的开篇,本系列后面将会包含但不限于web端rsa加密登录,js混淆后端包含支持https,rsa解密Android端将会包含apk混淆,加固,证书校验(只信任自己的证书)openssl证书生成等前端代码前端是Vue,采用jsencrypt进行加密,请求的时候会有跨域问题<template> <div class="center"> <el-row> <el-col :s原创 2020-08-24 13:03:47 · 1145 阅读 · 0 评论 -
Golang反射学习计划
package mainimport ( "fmt" "reflect")type Person struct { Name string `nameTag:"ShowName" anotherTag:"AnotherTag"` Age int `ageTag:"SetAge"` Gender int Desc string}func(p* Person)ShowName(){ fmt.Println("showName is ",p.Name)}func (p* Pe原创 2020-08-23 02:02:13 · 142 阅读 · 0 评论 -
Golang交互式执行adb命令
Golang交互式执行命令func main(){ in := bytes.NewBuffer(nil) cmd := exec.Command("adb.exe","shell") cmd.Stdin = in cmd.Stdout= os.Stdout go func() { in.WriteString("cd /data/local/tmp\n") in原创 2020-07-10 22:46:08 · 2660 阅读 · 0 评论 -
GoLang文件大小显示(简易版)
GoLang 文件大小显示优化GoLang 文件大小显示优化(简易版)GoLang 文件大小显示优化(简易版)// func formatFileSize(fileSize int64) (size string) { if fileSize < 1024 { return fmt.Sprintf("%.2fB", float64(fileSize)/float64(1)) } else if fileSize < (1024 * 1024) { return fmt.Spri原创 2020-07-03 16:04:18 · 527 阅读 · 0 评论 -
Go获取文件路径,文件名,后缀
Go获取文件路径,文件名,后缀 import ( "fmt" "os" "path/filepath" "path" ) files := "E:\\data\\test.txt" paths, fileName := filepath.Split(files) fmt.Println(paths, fileName) ...转载 2019-10-24 12:00:13 · 5405 阅读 · 0 评论