文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
本文我们来讲解一下如何使用 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 — 它是最简单的通信形式 。 它本质上是同步的 , 允许用户以阻塞模式发送请求并等待响应 , 直到服务器完成处理 。
- 客户端|红米K50电竞版和小米11Pro价格差不多,买哪款更合适?
- 脑机接口|将虚拟现实用于基于运动想象的脑机接口,引起了科学家极大的兴趣
- 搜索引擎|Magi 搜索已暂停服务,提供基于知识图谱的结构化搜索体验
- 客户端|冬奥会把智能床送上风口,天猫销售暴增300%,催生万亿市场
- 本文转自:青年河北长城网?冀云客户端讯(记者 信贺宁 张荣鹏 张晨光 赵晓慧)“去年9月...|长城播报 直通冬奥|揭开塞外山城另一面:大数据产业
- 本文转自:新民网图说:基于北斗的精准时空雪上运动智慧服务系统 来源/采访对象提供2022...|地上运动“参北斗”高精度“导航”冬奥会
- 大众CEO|大众 CEO:甲壳虫车型有望回归,基于 MEB 纯电平台
- 本文转自:周到客户端记者从市交通委获悉|本市网约车平台投诉最新排名出炉,投诉主要反映司机服务态度差、不规范驾驶等
- 2月8日|雷军“把小米改改吧员工”,曾经的万物基于miui
- 团购|江西新闻客户端|石城县召开2022年春季学期开学工作会议