在与 .Net 5 的微服务通信中使用 gRPC
使用.Net构建后端微服务之间的高性能gRPC服务间通信
讲师:Mehmet Ozkaya
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将学到什么
- .Net 5 微服务中的 gRPC
- 使用 proto3 语言处理 Protocol Buffers 并应用 google 众所周知的类型
- gRPC 方法类型、RPC 生命周期 – 一元、服务器流、客户端流、双向流
- 为 gRPC 合约优先 API 开发开发协议缓冲区文件(protobuf 文件)
- 使用 .Net 5 构建高性能 gRPC 服务间通信
- 使用 gRPC 和 AspNet 5 的后端微服务之间的通信
- AspNet Core 5 中辅助服务项目的后台任务
- 使用 AspNet Core Worker Service 模板管理长时间运行的服务应用程序
- 通过 AspNet Core 5 中的辅助服务项目在后台任务中使用范围化的 gRPC 服务
- 仅使用 gRPC 通信实现电子商务逻辑 – 产品、购物车和折扣 gRPC 服务
- 在后台任务中使用 Product 和 ShoppingCart Worker Service 中的 gRPC 服务器微服务
- 使用 OAuth 2.0 和 JWT 令牌通过独立的 Identity Server 微服务保护 gRPC 服务
- ProductGrpc Server 使用 gRPC 公开 CRUD 操作
- 通过代码优先方法使用 Entity Framework Core 5 内存数据库
- 使用产品、购物车和折扣 gRPC 服务以及来自工作人员服务的消耗来开发真实世界的服务间通信用例
- 使用gRPC实现快速分布式微服务系统
- 创建客户端控制台应用程序以使用 Grpc 微服务
- 在 Product Worker Service 应用程序中使用 ProductFactory 类生成产品
- Grpc Server 应用程序的日志记录和异常处理
- 使用 IdentityServer4 验证 gRPC 服务 使用 OAuth 2.0 和 JWT 承载令牌保护 ShoppingCartGrpc 方法
要求
- C#知识
- Aspnet核心基础知识
描述
您将学习如何使用 .Net 5 和 AspNet 5 在后端微服务之间构建高性能gRPC 服务间通信。
微服务是现代分布式系统,因此通过ASP.NET 5 中的 gRPC,我们将开发高性能、跨平台应用程序来构建分布式系统和 API。它是后端微服务、内部网络应用程序或物联网设备和服务之间通信的理想选择。随着 ASP.NET 5 的发布,Microsoft 增加了对使用 Asp.Net 5创建 gRPC 服务的一流支持。
本课程将引导您开始在分布式微服务架构上构建、开发和管理gRPC服务器和客户端。
课程项目总体架构
我们可以设计出6个微服务,我们要一一开发。
我们将使用Worker Services和Asp.Net 5 Grpc 应用程序来构建定义原型服务定义合约的客户端和服务器 gRPC 组件。
我们将仅使用 gRPC 通信来实现现实世界的电子商务用例。我们将拥有 3 个 gRPC 服务器应用程序,分别是Product — ShoppingCart和Discount gRPC 服务。我们将有 2 个工作人员服务,即Product和ShoppingCart Worker Service。Worker 服务将作为客户端并通过 gRPC 服务器应用程序执行操作。我们将使用带有OAuth 2.0和JWT令牌的独立Identity Server微服务来保护gRPC 服务。
ProductGrpc 服务器应用程序
首先,我们要开发ProductGrpc项目。这将是 Asp.Net gRPC 服务器 Web 应用程序,并公开用于 Product Crud 操作的 api。
产品工人服务
之后,我们将开发 Product Worker Service 项目来使用ProductGrpc 服务。该产品工作人员服务项目将作为 ProductGrpc 应用程序的客户端,并使用ProductGrpc 应用程序的客户端流 gRPC 原型服务生成产品并将批量产品记录插入到产品数据库中。该操作将在一个时间间隔内作为服务应用程序循环进行。
ShoppingCartGrpc 服务器应用程序
之后,我们将开发ShoppingCartGrpc项目。这将是 Asp.Net gRPC 服务器Web 应用程序,并公开用于 SC 和 SC 项目操作的 api。grpc 服务将创建购物车并向购物车添加或删除商品。
购物车工作人员服务
之后,我们将开发 ShoppingCart Worker Service 项目来使用 ShoppingCartGrpc 服务。此 ShoppingCart Worker 服务项目将是 ProductGrpc 和 ShoppingCartGrpc 应用程序的客户端。该工作服务将从ProductGrpc 读取产品并创建 sc 并使用 ProductGrpc 和 ShoppingCartGrpc 应用程序的 gRPC 原型服务将产品项添加到 sc 中。该操作将在一个时间间隔内作为服务应用程序循环进行。
DiscountGrpc 服务器应用程序
当添加产品项目到SC时,它会检索折扣值并计算产品的最终价格。此通信也将是与 SCGrpc 和 DiscountGrpc 应用程序的 gRPC 调用。
身份服务器
此外,我们将开发集中式独立身份验证服务器,并实现IdentityServer4包,微服务的名称为 Identity Server。
Identity Server4 是一个开源框架,它为 .Net Core 实现了OpenId Connect和OAuth2协议。
借助 IdentityServer,我们可以使用 OAuth 2.0 和 JWT 令牌来保护 ShoppingCart gRPC 服务。SC Worker 将在向 ShoppingCart Grpc 服务器应用程序发送请求之前获取令牌。
在本课程结束时,您将实际了解如何使用gRPC 来实现快速的分布式微服务系统。此外,您还将了解如何在微服务架构中使用 IdentityServer 保护受保护的 grpc 服务。
这门课程适合你吗?
这门课程非常实用,大约 90% 以上的课程将让你和我一起在这个项目上编码。如果您是那种从实践中获得最大收益的人,那么这门课程绝对适合您。
本课程所需的工具
在本课程中,所有课程均使用 Visual Studio 2019 作为代码编辑器进行演示。当然,您可以使用任何您喜欢的代码编辑器和任何您喜欢的操作系统,只要它是 Windows 或 Mac。
本课程适合谁:
- 对 gRPC 和微服务感兴趣的 .Net 开发人员