
文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

本文我们来讲解一下如何使用 gRPC构建微服务 , gRPC是一个开源框架 , 可用于构建可扩展且高性能的微服务并创建服务之间的通信 。
背景随着企业越来越多地转向微服务 , 对构建这些微服务的低延迟和可扩展框架的需求也在增加 。 为了满足这一需求 , 各种工具和框架提供商正加快满足微服务需求 。 同时从构建大型微服务应用程序的经验中学习 , 技术专业人士分享他们对可重用组件的知识 , 以便其他人可以构建具有相同规模和性能的架构 。
什么是 gRPCgRPC 是一个开源框架(由 Google 创建) , 是一个通用的 RPC 框架 , 用于大规模构建具有高性能的网络应用程序 。 实现有多种语言版本 , 并且支持跨平台通信 。
使用场景gRPC 非常适合服务与服务之间的 RPC 通信 。 在这里 , 我们将使用 Java 来实现微服务和相关框架 , 让它的功能更齐全 。 为了让其他服务可以访问它 , 我们将创建一个包装 REST 服务 , 这个服务将使用 gRPC 客户端与 gRPC 服务进行通信 。
准备工作我们需要设置一个基础环境来构建和运行示例 。 基本要求是安装 Java 和 Maven 。 gRPC 工具和服务器运行时库等其他依赖项 , 将在构建过程中自动下载 。 有关构建应用程序所需的核心依赖项 , 请参阅下面的代码 。
核心功能gRPC 基本上是一种与平台和编码无关的协议 。 这意味着 , 您可以使用任何类型的编码 , 如二进制、JSON、XML 等 , 但推荐的方法是使用“protobuf” , 它使用专门的序列化/反序列化机制支持二进制编码 。 可插拔设计允许用户对其进行扩展以支持所需的平台和堆栈 。
protobuf 的核心构造是 proto IDL(接口定义语言) , 定义了消息类型和服务定义 。 它还提供了为所需平台生成模型类和服务接口的工具 。
消息类型我们可以从在.proto文件中定义消息类型的 proto 定义开始 。 看下面的例子 。
有关数据类型和关键字的完整参考 , 请参阅proto3文档 。
Protobuf 提供了一种工具 , 可以根据适用于您的平台/编程语言的消息定义为模型类生成代码 。 以下命令将根据给定的消息定义在 Java 中生成account类 。
$ > protoc -I=proto-demo --java_out=proto-demo account.proto
服务定义gRPC 服务定义是一组需要对定义的消息类型执行的操作 。 这些操作可以采用以下四种通信形式之一:
- 单通道 RPC — 它是最简单的通信形式 。 它本质上是同步的 , 允许用户以阻塞模式发送请求并等待响应 , 直到服务器完成处理 。
- One|基于Android 13打造:三星Galaxy S22抢先用上One UI 5.0
- 客户端|多平台分析618数据,看清家居人未来方向!
- 客户端|雷军下军令状?不调好绝不发布,小米12 Ultra稳了
- 英伟达|NVIDIA Triton 推理引擎公开课上新:基于多实例 GPU 和 K8s 的大规模 CV 模型部署实践
- 苹果|澳大利亚成功制造了可控光流组件,基于光的通信设施将迎来革新
- 致远互联|跨时空协作的利器——基于生命周期管理的基础设施BIM平台
- 客户端|2022年06月21日《区块链每日必知》微信或首次以“涉数字藏品二级交易”理由封禁一公众号
- 基于深度学习的点云分割网络及点云分割数据集
- 客户端|卡贴机价格暴跌,正是入手好时机!粉丝买卡贴iPhone13Pro仅4700!
- OPPO|杀后台问题有救了!OPPO新系统曝光:基于Android 13
