Go微服务(二)——Protobuf详细入门 上

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Go微服务(二)——Protobuf详细入门 上

篇幅可能较长,可以先收藏,方便后续观看。

文章名称 地址
Go微服务(一)——RPC详细入门 前往
Go微服务(二)——Protobuf详细入门 前往
Go微服务(三)——gRPC详细入门 前往

Protobuf入门

1. 为什么选择Protobuf

Protobuf是Protocol Buffers的简称,它是Google公司开发的⼀种数据描述语⾔,并于2008年对外开 源。Protobuf刚开源时的定位类似于XML、JSON等数据描述语⾔,通过附带⼯具⽣成代码并实现将结 构化数据序列化的功能。但是我们更关注的是Protobuf作为接⼝规范的描述语⾔,可以作为设计安全的 跨语⾔PRC接⼝的基础⼯具。

1.什么是Protobuf?

Protobuf是Protocol Buffers的简称。

Google 2008年开源的一种数据描述语言。

接口规范的描述语言

附带工具生成代码 并实现 将结构化数据 序列化的功能。

设计安全的跨语言RPC接口的基础工具

2.Protobuf的优势:

编解码效率

高压缩比

多语言支持


2. Go 语言Protobuf开发环境搭建

Protobuf 编译器 :

Protobuf的编译器叫做:protoc(protobuf compiler)

Golang安装使用Protobuf:

1. 下载Protobuf的编译器

  1. 1.下载protobuf的编译器,点击前往

  2. 2.解压,解压位置看你自己,解压后将/bin/protoc.exe添加到环境变量里


  1. 3.测试:
    cmd 输入 protoc --version

2. 安装go protocol buffers的插件 protoc-gen-go

Protobuf核⼼的⼯具集是C++语⾔开发的,在官⽅的protoc编译器中并不⽀持Go语⾔。要想基于 .proto⽂件⽣成相应的Go代码,需要安装相应的插件。

cmd输入:

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

这个插件会自动下载到你的go path的bin目录下。(编译器会自动到这里找这个插件)

3. 实战测试:

创建 myProto.proto 文件

syntax = "proto3";
package main;
option go_package = "./";
message String {
  string name = 1;
  int64  age  = 2;
}

注意:如果在上面protoc --version成功,而这里提示无法识别protoc命令的话,重启一下goland就好了。

相关文章
|
10天前
|
Go API Docker
热门go与微服务15
热门go与微服务15
24 2
|
1月前
|
缓存 安全 Java
如何利用Go语言提升微服务架构的性能
在当今的软件开发中,微服务架构逐渐成为主流选择,它通过将应用程序拆分为多个小服务来提升灵活性和可维护性。然而,如何确保这些微服务高效且稳定地运行是一个关键问题。Go语言,以其高效的并发处理能力和简洁的语法,成为解决这一问题的理想工具。本文将探讨如何通过Go语言优化微服务架构的性能,包括高效的并发编程、内存管理技巧以及如何利用Go生态系统中的工具来提升服务的响应速度和资源利用率。
|
9天前
|
Kubernetes Go Docker
掌握微服务架构:从Go到容器化的旅程
摘要,通常简短概述文章内容,要求精炼。在本文中,我们将打破常规,采用一种故事化叙述的摘要,旨在激发读者的好奇心和探究欲: “从宁静的海滨小城出发,我们踏上了一场技术探险之旅,探索微服务架构的奥秘。我们将学习如何用Go编写微服务,以及如何通过Docker和Kubernetes将它们打包进小巧的容器中。在这场旅程中,我们将遇到挑战、收获知识,最终实现应用的快速部署与可扩展性。”
|
2月前
|
Cloud Native 云计算 微服务
云原生入门指南:从零开始构建微服务
【8月更文挑战第31天】在数字化浪潮中,云原生技术正引领着软件开发的未来。本文旨在为初学者揭开云原生的神秘面纱,通过一个简易微服务的搭建过程,展示云原生应用的构建和部署。我们将从概念理解到实际操作,一步步带领读者走进云原生的世界,探索其背后的哲学与实践之美。
|
2月前
|
Kubernetes Cloud Native Docker
云原生入门:从容器化到微服务
【8月更文挑战第31天】在数字化浪潮中,云原生技术成为企业转型的核心驱动力。本文将带领读者从零开始,探索如何利用云原生技术构建现代、高效的应用架构。我们将一起学习容器化的基础,深入理解Docker和Kubernetes的工作原理,并实践构建一个简单的微服务应用。通过代码示例和实操演练,让理论与实践相结合,为读者揭开云原生技术的神秘面纱。
|
2月前
|
Unix Go
Go从入门到放弃之时间操作
Go从入门到放弃之时间操作
|
2月前
|
机器学习/深度学习 移动开发 Linux
Go从入门到放弃之文件操作
Go从入门到放弃之文件操作
|
2月前
|
Java Go PHP
Go从入门到放弃之错误处理
Go从入门到放弃之错误处理
|
2月前
|
存储 Java Go
Go从入门到放弃之结构体(面向对象)
Go从入门到放弃之结构体(面向对象)
|
2月前
|
存储 机器学习/深度学习 设计模式
Go从入门到放弃之函数
Go从入门到放弃之函数
下一篇
无影云桌面