程序封装部分: package rmq import ( "github.com/streadway/amqp" "errors" "bytes" "strings" ) var conn *amqp.Connection var channel *amqp.Channel var topics string var nodes s...
教程
Golang将文件夹压缩为ZIP格式并加密
Golang将文件夹压缩为ZIP格式并加密,直接上代码。 import ( "archive/zip" "io" "os" "path/filepath" "strings" ezip "github.com/alexmullins/zip" ) // CompressPathToZip 压缩文件夹 ...
Go Context 并发编程
1 为什么需要 Context WaitGroup 和信道(channel)是常见的 2 种并发控制的方式。 如果并发启动了多个子协程,需要等待所有的子协程完成任务,WaitGroup 非常适合于这类场景,例如下面的例子: var wg sy...
Go RPC & TLS 鉴权简明教程
本文介绍了 Go 语言远程过程调用(Remote Procedure Call, RPC)的使用方式,示例基于 Golang 标准库 net/rpc,同时介绍了如何基于 TLS/SSL 实现服务器端和客户端的单向鉴权、双向鉴权。 1 RPC 简介 远程过程调...
golang 的testing.T 和 testing.M 的区别
testing.T 是普通测试包 : func TestUser(t *testing.T){ fmt.Println("main 测试") t.Run("开始测试第一个子测试函数:", testAddUser) } func testAddUser(t *testing.T){ fmt.Println("...
Go语言Test功能测试函数详解
Go语言的 testing 包提供了三种测试方式,分别是单元(功能)测试、性能(压力)测试和覆盖率测试。 单元(功能)测试 在同一文件夹下创建两个Go语言文件,分别命名为 demo.go 和 demt_test.go,如下图所示:...
go 使用 Protobuf
Protobuf核心的工具集是C++语言开发的,在官方的protoc编译器中并不支持Go语言。要想基于上面的hello.proto文件生成相应的Go代码,需要安装相应的插件。首先是安装官方的protoc工具,可以从 https://github.com/g...
go grpc 使用案例
1.创建 .proto文件 syntax = "proto3"; option go_package="/proto"; package Business; service Hello { rpc Say (SayRequest) returns (SayResponse); } message SayResponse { bytes Re...
密码保护:Go语言:gRPC调用进阶
在上节课内容中,我们学习了使用gRPC框架实现服务的调用编程。在gRPC框架中,诸如上节课我们学习的在客户端与服务端之间通过消息结构体定义的方式来传递数据,我们称之为“单项RPC”,也称之为简单模式。除此之外,...
Go语言:gRPC框架使用实现gRPC编程
本节课通过编程实现gRPC编程。 定义服务 我们想要实现的是通过gRPC框架进行远程服务调用,首先第一步应该是要有服务。利用之前所掌握的内容,gRPC框架支持对服务的定义和生成。gRPC框架默认使用protocol buff...