|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/hands-on-go-programming-microservices-with-protocol-buffers-grpc/
课程评论:没有评论
**课程名称:** Hands-On Go: Microservices With Protocol Buffers & gRPC **课程概述:** 本课程旨在帮助学习者通过 Go 语言,深入理解和实践 Protocol Buffers (protobuf) 和 gRPC 在微服务架构中的应用。课程采用循序渐进的教学方式,从 protobuf 的基础概念、风格指南和文件结构入门,探讨了标量类型、repeated、enum、protobuf JSON、嵌套消息类型、package、any、oneof、map 以及 schema evolution 等核心知识点。 同时,课程全面覆盖了 gRPC 的实现及其与 protobuf 的集成,包括使用 GitHub 管理 gRPC 仓库、gRPC 状态码、错误处理、服务器韧性(超时、重试、熔断器)等方面。此外,还深入讲解了元数据(metadata)服务器与客户端、服务器拦截器、客户端拦截器以及 gRPC-REST 网关的实现。 课程以实践为主导,通过大量动手实验,带领学员构建一个基于 gRPC 和 protobuf 的银行应用程序,并结合 PostgreSQL 数据库和 Go ORM 进行数据操作。 **目标学员:** * 具备 Go 语言基础知识的学习者。 * 熟悉 git 命令(push, pull, pull request, merge, branch)的学习者。 **课程内容亮点:** * **Protobuf 深度解析:** 涵盖 protobuf 的所有关键特性,包括数据类型、消息结构、版本兼容性(schema evolution)等。 * **gRPC 全面实践:** 学习不同类型的 gRPC 服务(unary, server streaming, client streaming, bidirectional streaming),以及错误处理和韧性技术的实现。 * **微服务构建实战:** 通过构建银行应用,将 Protobuf 和 gRPC 应用于真实的微服务场景,并集成数据库操作。 * **API 互通:** 学习使用 gRPC-REST 网关将 gRPC API 转换为 RESTful API,并生成 OpenAPI/Swagger 文档。 * **实操导向:** 课程采用实验式教学,提供每一步的指导,并附带完整的解决方案,方便学习者独立完成。 **学习成果:** 完成本课程后,您将能够: * 熟练掌握 Protobuf 的使用,遵循其风格指南,并灵活运用各种消息类型。 * 理解并实现 gRPC 的不同服务模式,能进行有效的错误处理和构建高韧性的微服务。 * 成功构建基于 gRPC、Protobuf 和 Go 的微服务应用,并能处理数据库交互。 * 掌握将 gRPC API 转换为 REST API 的方法,提升 API 的可访问性。 **所需工具:** * Go 编程语言 * Protocol Buffers (protobuf) * gRPC * GitHub * Visual Studio Code (或您偏好的代码编辑器)
This course is designed to help learners understand and implement Protocol Buffers (protobuf) and gRPC using the Go programming language on microservice architecture.The course is structured in a step-by-step manner, starting with an introduction to protobuf, its style guide, and course file structure. You will learn the theory behind various aspects of protobuf such as scalar types, repeated enum comments, protobuf JSON, nested message type, package, any, oneof, map, and schema evolution.The course also covers the implementation of gRPC and its integration with protobuf. You will learn how to manage the gRPC repository using github, gRPC status, error handling, resiliency server, timeout, retry, and circuit breaker. Additionally, the course covers the implementation of metadata server and client, server interceptor, client interceptor, and gRPC-REST gateway.Throughout the course, you will work on various hands-on codes that involve creating a banking application using gRPC and protobuf, as well as using PostgreSQL database and Go Object Relational Mapper (ORM) to works with database. By the end of this course, you will have the skills and knowledge required to create microservices using gRPC and protobuf with the Go programming language.Requirements (must-have):Basic knowledge of the Go programming languageFamiliarity with git commands (push, pull, pull request, merge, branch)Tools:Go programming languageProtocol Buffers (protobuf)gRPCGithubVisual Studio Code (or any editor you like)The course delivered in lab-style teaching, where you are assigned with a task tobe solved. There will be a guidance for each task so you can try hands-on. If you stuck, you can jump to the full solution.The course contains 130+ lectures, which cover the following topics:Introduction to protobufWriting a protobuf (style guide)Scalar types, repeated, enums, and Protobuf JSONOther message types, multiple files and import messages, nested message types, and packagesAny, oneof, and mapsReading and writing Protobuf to disk and JSONSchema evolution and additional data typesOption, field validation, and field number effect tipsIntroduction to gRPC and whether to use it or notManaging & automating Protobuf and gRPC github repositories with github actionImplementing a unary server and client, server streaming, client streaming, and bidirectional streamingImplementing a bank gRPC application with PostgrSQL database preparation, fetching exchange rates, and summarizing transactionsHandling gRPC status and errors, error handling on the client side, and resiliency techniques such as timeout, retry, and circuit breakerImplementing metadata, server and client interceptorsgRPC-REST gatewayBy the end of the course, you will have gained a thorough understanding of how to implement Protocol Buffers and gRPC using the Go programming language. You will learned how to follow Protobuf style guides, organize Protobuf file structures, and work with scalar types, repeated, enums, maps, any, oneof, and nested message types. They will also have learned how to read and write Protobuf to disk and JSON, handle schema evolution (forward / backward compatibility), and use additional data types.Furthermore, you will have gained hands-on experience in implementing various types of gRPC services, including unary, server streaming, client streaming, and bidirectional streaming. You will also have learned how to handle gRPC status and errors, implement resiliency techniques such as timeout, retry, and circuit breaker. You will learn how to convert your gRPC API to REST API, using gRPC-REST gateway. You will also learn how to generate OpenAPI / swagger documentation for gRPC.In other words, you will have gained practical skills and knowledge that you can apply to building robust and scalable microservices using Protocol Buffers and gRPC with the Go programming language.