单向golang grpc
golang context使用小结
Go标准库中的context包,提供了goroutine之间的传递信息的机制,信号同步,除此之外还有超时(timeout)和取消(cancel)机制。概括起来,Context可以控制子goroutine的运行,超时控制的方法调用,可以取消的方法调用。 #### context核心数据结构 1. Co ......
golang入门,基础语法demo(1)
package main import "fmt" func main() { // 声明变量 var a int // 使用 var 关键字声明变量 a,类型为 int a = 1 // 赋值 fmt.Println(a) // 类型推导 // 使用 := 自动推导类型并声明变量 b,其类型为 s ......
golang 常用控制协程的三种方式
#### waitGroup waitGroup这种方式适用于一个任务可以被拆分成几个子任务,并且子任务之间的关联程度不高,全部的子任务都完成,才会进行下一阶段的任务。 ```golang package main import ( "fmt" "sync" "time" ) func main() ......
GoLang在不同系统打包
配置 Mac下编译Linux, Windows平台的64位可执行程序: go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64 Linux下编译Mac, Win ......
gRPC学习记录--python
## gRPC学习记录 基于:[gRPC 官方文档中文版 v1.0](https://www.bookstack.cn/books/grpc-v1.0) [TOC] ## gRPC 是什么? RPC是远程过程调用(Remote Procedure Call)的缩写, 在 gRPC 里*客户端*应用可 ......
golang 给对象的基础数据类型的指针类型的属性赋值
## 概要 有时我们可能碰到定义成下面这样的结构体,结构体里某些属性是基础数据类型,更确切的说,是基础数据类型的指针类型。 ```golang type Student struct { name string `json:"name"` age *int `json:"age"` // age 是 ......
Golang 中文转拼音
翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了. GitHub 传送门: [https://github.com/Lofanmi/pinyin-golang](https://github.com/Lo ......
Golang如何优雅地关闭 channel
Golang如何优雅地关闭 channel 萧瑟 golang面试经典讲解 2023-05-31 21:00 发表于上海 一、介绍 想必听说过 go 的,应该都知道 go 的最大的特性 goroutine 并发编程,而说到并发编程,使用 channel 进行数据传输是 go 中的必修课。 go 的并 ......
Golang 中文转拼音
翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了. GitHub 传送门: [https://github.com/Lofanmi/pinyin-golang](https://github.com/Lo ......
A Practical Methodology, HSM, Handler,Service,Model, for Golang Backend Development
A simple methodology or design pattern called HSM (Handler, Service, Model) or Golang backend development. HSM is similar to MVC but specifically tail... ......
gRPC
grpc性能高:http2.0为什么比http1.1性能高? http/1.* :一次请求,一个响应,建立一个连接用完关闭,每一个请求都要建立一个连接 http1.1 pipeling: Pipeling解决方式为,若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有 ......
如何调试golang程序
在Golang中进行调试和性能分析是非常重要的,在开发过程中发现问题并及时修复可以极大地提高代码质量和效率。介绍两种常用的调试工具,dlv和pprof,以及如何使用它们进行代码调试和性能分析。 ### 一、dlv调试工具 1.安装 在使用dlv前需要先安装,可以通过以下命令进行安装: ```shel ......
golang 语法糖
### golang 语法糖 在 Go 语言中,`nums...` 是一种语法糖,用于将切片 `nums` 展开为一个个独立的参数。 在函数调用中,如果你有一个切片 `nums`,你可以使用 `nums...` 将切片展开为独立的元素,作为函数的参数传递。 以下是一个示例说明 `nums...` 的 ......
镜像golang 标准库文档
- **缘起:**查golang文档时,访问 https://pkg.go.dev/std 网站有点慢,就想做个离线版的 - 修改日期: 2023-06-16 # mirror std lib `wget -c -t 3 -r -l 1 -np -p -k https://pkg.go.dev/st ......
golang面试题
1.什么是goroutine?它和线程有什么区别?答:goroutine是Go语言中一种轻量级的线程,由Go语言的运行时系统调度。和线程不同的是,一个程序可以创建成千上万的goroutine,因为goroutine是在一个线程中运行的,所以创建goroutine的代价非常小。此外,goroutine ......
golang之JWT实现
什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥 ......
golang之数据验证validator
https://blog.csdn.net/guyan0319/article/details/105918559/ 前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。 原理将验证规则写在struct对字段tag里,再通过反射(refle ......
golang之context
context 用来解决 goroutine 之间退出通知、元数据传递的功能。 context 使用起来非常方便。源码里对外提供了一个创建根节点 context 的函数: func Background() Context background 是一个空的 context, 它不能被取消,没有值,也 ......
golang之http请求库go-resty
github: https://github.com/go-resty/resty go-resty 特性# go-resty 有很多特性: 发起 GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, etc. 请求 简单的链式书写 自动解析 JSON 和 XM ......
golang之errors包
errors包常用方法 func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包含target func As(err error, target interface{}) boo ......
Golang开发新手常犯的50个错误
《50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs》 原文地址:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang ......
Golang Copy 制整个文件夹或单个文件; //Move 文件
// Copy 制整个文件夹或单个文件 func Copy(from, to string) error { f, e := os.Stat(from) if e != nil { fmt.Println("没有找到要拷贝的路径:", from) return e } ......
gRPC入门与实操(.NET篇)
为什么选择 gRPC# 历史# 长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式)。WebApi + JSON 是优选的,很重要的一点是它们两者都是平台无关的三方标准,且足够语义化,便于程序员使用,在异构(前后端、多语言 ......
WPF 项目使用 Grpc.Tools
### 1 WPF 项目使用 Grpc.Tools #### 1.1 方法一 把 proto 文件和 Grpc.Tools 单独建一个类库项目,WPF 项目引用这个类库项目。 解决 Grpc.Tools 自动生成的 CSharp 类无法被 WPF 项目识别引用的问题,使 WPF 项目能够成功通过编译 ......
云原生时代崛起的编程语言Go远程调用gRPC实战
云原生时代分布式和微服务RPC是一项常见技术,本篇先了解grpc基本定义和特点,搭建gRPC Go开发环境,并了解proto文件基本使用和gRPC go语言代码生成,然后通过Go语言代码示例从使用场景演示一元RPC、服务器流式RPC(文件上传)、客户端流式RPC(文件下载)、双向流式RPC(聊天),... ......
golang对于[]byte数组转string进行比较的优化
当需要比较两个`[]byte`数组是否相等时有好几种方案,下面可以看出前三种方案都是优化过的,效率高的方案。 ```go package main import ( "bytes" "crypto/rand" mr "math/rand" "testing" ) func StringEqual(n ......
【解决一个小问题】golang 的 `-race`选项导致 unsafe代码 panic
**作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!** * [cnblogs博客](https://www.cnblogs.com/ahfuzhang/) * [zhihu](https://www.zhihu.com/people/ahfuzhang/posts) * [G ......
golang 遍历并批量压缩图片
package main import ( "bytes" "fmt" "image" "io/ioutil" "mylog" "os" "path" "github.com/nfnt/resize" _ "image/gif" "image/jpeg" _ "image/png" ) func m ......
Golang Println、Printf、Sprintf的区别(笔记)
Println :可以打印出字符串,和变量 Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形 Sprintf:用传入的格式化规则符将传入的变量格式化,(终端中不会有显示),返回为 格式化后的字符串 ......
golang 实现cas
相比sync.WaitGroup里面的互斥锁,cas可以实现无锁等待一组任务执行完成后释放,示例代码如下 ```go func TestCAS(t *testing.T) { var count int32 = 10000 for i := 0; i 0 { } t.Log("task exec f ......