摘要:
原文在[这里](https://grpc.io/docs/languages/go/basics/)。 本教程为Go程序员提供了使用gRPC的基本介绍。 通过跟随本示例,你将学会如何: - 在.proto文件中定义一个服务。 - 使用协议缓冲编译器生成服务器和客户端代码。 - 使用Go gRPC A 阅读全文
摘要:
原文在[这里](https://protobuf.dev/reference/go/faq/#namespace-conflict)。 ## 什么是Protocol Buffer命名空间冲突? 所有链接到Go二进制文件的Protocol Buffer声明都被插入到一个全局注册表中。 每个Protoc 阅读全文
摘要:
简介: 在现代软件开发中,全球唯一标识符(UUID)在许多场景中发挥着重要的作用。UUID是一种128位的唯一标识符,它能够保证在全球范围内不重复。在Go语言中,我们可以使用第三方库`github.com/google/uuid`来方便地生成UUID。本文将介绍如何使用这个库来生成不同版本的UUID 阅读全文
摘要:
## 什么是 gRPC? gRPC 是由 Google 开发的高性能、开源的 RPC(Remote Procedure Call)框架,用于在客户端和服务器之间进行通信。它基于 Protocol Buffers(protobuf)进行消息序列化和反序列化,支持多种通信协议,如 HTTP/2、TCP 阅读全文
摘要:
在protobuf中导入当前目录中的`.proto`文件时,可以使用相对路径。相对路径是相对于当前`.proto`文件所在的目录来引用其他`.proto`文件。 假设有以下目录结构: ``` my_project/ |-- proto/ | |-- person.proto |-- main.pro 阅读全文
摘要:
最近在研究[kratos](https://github.com/go-kratos/kratos)的使用,发现在`kratos run`之前会先运行`go generate ./...`命令。 这个命令之前没怎么用过,所以决定学习下该命令的用法。 `go generate`是Go语言中的一个命令, 阅读全文
摘要:
当声明枚举类型或定义一组相关常量时,Go语言中的`iota`关键字可以帮助我们简化代码并自动生成递增的值。本文档将详细介绍`iota`的用法和行为。 ### `iota`关键字 `iota`是Go语言中的一个预定义标识符,它用于创建自增的无类型整数常量。`iota`的行为类似于一个计数器,每次在常量 阅读全文
摘要:
## 概述 gRPC 和 HTTP 是两种常见的网络通信协议,用于在客户端和服务器之间进行通信。它们具有不同的特点和适用场景,下面对它们进行详细比较。 ## HTTP(Hypertext Transfer Protocol) ### 特点: 1. **简单易用**:HTTP 使用简单的请求方法和状态 阅读全文
摘要:
Go语音中格式化时间不是常见的`y-m-d H:M:S`,而是使用**2006-01-02 15:04:05 -0700 MST**,也就是常说的`123456`。 > 之所以这么用,据说Go是在这个时间节点诞生的 在go 1.20之前,除了自定义时间格式外,还可以使用`time`包中预定义的格式: 阅读全文
摘要:
在Linux系统中执行操作时,进程可以通过发送和接收信号与其他进程进行通信。信号是用于通知进程发生特定事件或请求进程采取特定动作的软件中断。 以下是Linux系统中常见的一些信号及其含义: 1. **SIGINT (2)**:中断信号,通常由终端用户按下`Ctrl + C`发送给前台进程。该信号用于 阅读全文