当前位置: 首页 > news >正文

mac上 Kratos 配置 protoc

前言

protocprotobuf 文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。

protoc 在设计上把 protobuf 和不同的语言解耦了,底层用 c++ 来实现 protobuf 结构的存储,然后通过插件的形式来生成不同语言的源码。

可以把 protoc 的编译过程分成简单的两个步骤:

1)解析 .proto 文件,转译成 protobuf 的原生数据结构在内存中保存;

2)把 protobuf 相关的数据结构传递给相应语言的编译插件,由插件负责根据接收到的 protobuf 原生结构渲染输出特定语言的模板。

protoc-gen-goprotobuf 编译插件系列中的Go版本。

设置开启GO111MODULE、配置代理

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn/

安装 kratos

go install github.com/go-kratos/kratos/cmd/kratos/v2@latestkratos upgradego mod tidy # 更新依赖库

安装 protobuf 相关库

# 安装 proto
go get -u github.com/golang/protobuf/proto# kratos升级到最新版
sudo kratos upgrade# 安装 protoc-gen-go-grpc
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest# 安装 protoc-gen-go-http
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2# 安装 protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go@latest
go install github.com/golang/protobuf/protoc-gen-go@latest# 安装 protoc-gen-go-errors
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2# 安装 protoc-gen-openapiv2
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2# 安装 protoc-gen-validate
go get -u github.com/envoyproxy/protoc-gen-validate
go install github.com/envoyproxy/protoc-gen-validate

生成所有proto源码、wire等等,下面命令二选一

go generate ./...      go run generate.go ./..

运行项目

kratos run
http://www.lryc.cn/news/148580.html

相关文章:

  • 【c++5道练习题】①
  • 最佳实践:TiDB 业务读变慢分析处理
  • 【ES6】Getter和Setter
  • 3DS Max中绘制圆锥箭头
  • 虚拟机Ubuntu20.04 网络连接器图标开机不显示怎么办
  • 你真的知道什么是USB Server吗?一分钟了解
  • Node.js 中间件是怎样工作的?
  • Spring MVC: 请求参数的获取
  • 别再头疼反弹Shell失败了,这篇文章带你找到问题根源
  • 第五章 树与二叉树 四、线索树(手算与代码实现)
  • 服务器前后端学习理解
  • python-数据分析-numpy、pandas、matplotlib的常用方法
  • ChatGPT⼊门到精通(5):ChatGPT 和Claude区别
  • ChatGPT 总结数据分析的所有知识点
  • hadoop-HDFS
  • 0202hdfs的shell操作-hadoop-大数据学习
  • 生活小记-挂号信
  • 3D点云处理:基于PCA的计算点云位姿(占位待整理)
  • 本地私有仓库、harbor私有仓库部署与管理
  • 尚硅谷SpringMVC (5-8)
  • jupyter notebook中查看python版本的解决方案
  • 动态字符串 String (完整源码)
  • 【深度学习】实验05 构造神经网络示例
  • 用了这么久SpringBoot却还不知道的一个小技巧
  • Websocket、SessionCookie、前端基础知识
  • 【云原生进阶之PaaS中间件】第一章Redis-2.4缓存更新机制
  • Qt——事件处理详解
  • 基于位置管理的企业员工考勤打卡系统设计 微信小程序
  • adb 查找应用包名,应用 Activity 等信息
  • 八、SpringBoot集成Kafka