单向golang grpc

golang context使用小结

Go标准库中的context包,提供了goroutine之间的传递信息的机制,信号同步,除此之外还有超时(timeout)和取消(cancel)机制。概括起来,Context可以控制子goroutine的运行,超时控制的方法调用,可以取消的方法调用。 #### context核心数据结构 1. Co ......
小结 context golang

golang入门,基础语法demo(1)

package main import "fmt" func main() { // 声明变量 var a int // 使用 var 关键字声明变量 a,类型为 int a = 1 // 赋值 fmt.Println(a) // 类型推导 // 使用 := 自动推导类型并声明变量 b,其类型为 s ......
语法 基础 golang demo

golang 常用控制协程的三种方式

#### waitGroup waitGroup这种方式适用于一个任务可以被拆分成几个子任务,并且子任务之间的关联程度不高,全部的子任务都完成,才会进行下一阶段的任务。 ```golang package main import ( "fmt" "sync" "time" ) func main() ......
常用 方式 golang

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 ......
GoLang 系统

gRPC学习记录--python

## gRPC学习记录 基于:[gRPC 官方文档中文版 v1.0](https://www.bookstack.cn/books/grpc-v1.0) [TOC] ## gRPC 是什么? RPC是远程过程调用(Remote Procedure Call)的缩写, 在 gRPC 里*客户端*应用可 ......
python 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

Golang如何优雅地关闭 channel

Golang如何优雅地关闭 channel 萧瑟 golang面试经典讲解 2023-05-31 21:00 发表于上海 一、介绍 想必听说过 go 的,应该都知道 go 的最大的特性 goroutine 并发编程,而说到并发编程,使用 channel 进行数据传输是 go 中的必修课。 go 的并 ......
channel Golang

Golang 中文转拼音

翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了. GitHub 传送门: [https://github.com/Lofanmi/pinyin-golang](https://github.com/Lo ......
拼音 Golang

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解决方式为,若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有 ......
gRPC

如何调试golang程序

在Golang中进行调试和性能分析是非常重要的,在开发过程中发现问题并及时修复可以极大地提高代码质量和效率。介绍两种常用的调试工具,dlv和pprof,以及如何使用它们进行代码调试和性能分析。 ### 一、dlv调试工具 1.安装 在使用dlv前需要先安装,可以通过以下命令进行安装: ```shel ......
程序 golang

golang 语法糖

### golang 语法糖 在 Go 语言中,`nums...` 是一种语法糖,用于将切片 `nums` 展开为一个个独立的参数。 在函数调用中,如果你有一个切片 `nums`,你可以使用 `nums...` 将切片展开为独立的元素,作为函数的参数传递。 以下是一个示例说明 `nums...` 的 ......
语法 golang

镜像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

golang面试题

1.什么是goroutine?它和线程有什么区别?答:goroutine是Go语言中一种轻量级的线程,由Go语言的运行时系统调度。和线程不同的是,一个程序可以创建成千上万的goroutine,因为goroutine是在一个线程中运行的,所以创建goroutine的代价非常小。此外,goroutine ......
golang

golang之JWT实现

什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥 ......
golang JWT

golang之数据验证validator

https://blog.csdn.net/guyan0319/article/details/105918559/ 前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。 原理将验证规则写在struct对字段tag里,再通过反射(refle ......
validator 数据 golang

golang之context

context 用来解决 goroutine 之间退出通知、元数据传递的功能。 context 使用起来非常方便。源码里对外提供了一个创建根节点 context 的函数: func Background() Context background 是一个空的 context, 它不能被取消,没有值,也 ......
context golang

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 ......
go-resty golang resty http go

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 errors

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

Golang Copy 制整个文件夹或单个文件; //Move 文件

// Copy 制整个文件夹或单个文件 func Copy(from, to string) error {​​​ f, e := os.Stat(from) if e != nil {​​​​​​​​​​ fmt.Println("没有找到要拷贝的路径:", from) return e }​​​ ......
文件 单个 文件夹 Golang Copy

gRPC入门与实操(.NET篇)

为什么选择 gRPC# 历史# 长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式)。WebApi + JSON 是优选的,很重要的一点是它们两者都是平台无关的三方标准,且足够语义化,便于程序员使用,在异构(前后端、多语言 ......
gRPC NET

WPF 项目使用 Grpc.Tools

### 1 WPF 项目使用 Grpc.Tools #### 1.1 方法一 把 proto 文件和 Grpc.Tools 单独建一个类库项目,WPF 项目引用这个类库项目。 解决 Grpc.Tools 自动生成的 CSharp 类无法被 WPF 项目识别引用的问题,使 WPF 项目能够成功通过编译 ......
项目 Tools Grpc WPF

云原生时代崛起的编程语言Go远程调用gRPC实战

云原生时代分布式和微服务RPC是一项常见技术,本篇先了解grpc基本定义和特点,搭建gRPC Go开发环境,并了解proto文件基本使用和gRPC go语言代码生成,然后通过Go语言代码示例从使用场景演示一元RPC、服务器流式RPC(文件上传)、客户端流式RPC(文件下载)、双向流式RPC(聊天),... ......
编程语言 实战 语言 时代 gRPC

golang对于[]byte数组转string进行比较的优化

当需要比较两个`[]byte`数组是否相等时有好几种方案,下面可以看出前三种方案都是优化过的,效率高的方案。 ```go package main import ( "bytes" "crypto/rand" mr "math/rand" "testing" ) func StringEqual(n ......
数组 golang string byte

【解决一个小问题】golang 的 `-race`选项导致 unsafe代码 panic

**作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!** * [cnblogs博客](https://www.cnblogs.com/ahfuzhang/) * [zhihu](https://www.zhihu.com/people/ahfuzhang/posts) * [G ......
代码 golang unsafe 问题 panic

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 图片

Golang Println、Printf、Sprintf的区别(笔记)

Println :可以打印出字符串,和变量 Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形 Sprintf:用传入的格式化规则符将传入的变量格式化,(终端中不会有显示),返回为 格式化后的字符串 ......
Println Sprintf 笔记 Golang Printf

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 ......
golang cas