《gRPC与云原生应用开发》免费送,谁将成为幸运儿?

共 2388字,需浏览 5分钟

 ·

2021-02-20 14:20

gRPC是由谷歌开源的高性能远程过程调用框架。虽然gRPC的采用率正呈指数级增长,但中文领域一直没有一本综合介绍该技术的实体书。gRPC: Up and Running: Building Cloud Native Applications with Go and Java 一书的出现打破了这种局面。在英文版出版不到一年之内,图灵也引入出版了中文版(译者为张卫滨老师),新书在春节之前刚上架!这也就是今天为大家推荐的《gRPC与云原生应用开发:以 Go 和 Java 为例》。

卡山·因德拉西里 丹尼什·库鲁普 著
张卫滨 译


在介绍这本书之前,我们先来聊聊 gRPC 是怎样的一个存在,以及为什么值得选择它。

2015 年 2 月 26 日,谷歌宣布开源 gRPC,并称其「基于公司多年的分布式系统构建经验」。自那之后,人们给 gRPC 贴上了许多漂亮的「标签」:极速、高性能、微服务间通信首选、多语言支持、双向流模式、protobuf、HTTP/2,等等。

0

gRPC 的应用场景

现代应用程序很少是孤立运行的,相反,它们通过网络连接在一起,并且以互相传递消息的方式进行通信。我们可以将现代软件系统视为分布式应用程序的集合,这些应用程序在不同的网络位置运行,并且运用不同的通信协议在彼此间传递消息。

以在线零售系统为例,这类系统可能由多个分布式应用程序组成,如订单管理应用程序、商品目录应用程序和数据库等。为了实现在线零售业务功能,这些分布式应用程序需要相互连接和通信。

随着微服务架构和云原生架构的出现,为多种业务功能构建的传统软件系统被进一步拆分为一组细粒度、自治和面向业务能力的实体,也就是微服务

基于微服务的软件系统需要借助进程间(服务间)通信技术,将各个微服务通过网络连接起来。

比如,对于采用微服务架构的在线零售系统,我们会发现它有多个互相连接的微服务,如订单管理、搜索、结账、配送等。

gRPC 非常适合构建高可扩展、低延迟的分布式系统和微服务。它比传统的 RESTful 服务更高效、更快速。

1

优点一:极速

gRPC 使用 protocol buffers(以下简称 protobuf)作为数据序列化机制。protobuf 的特点是语言中立、平台无关、高可扩展,它可以序列化和反序列化结构化数据。

与采用文本格式的 JSON 相比,采用二进制格式的 protobuf 在速度上可以达到前者的 5 倍!Auth0 网站所做的性能测试结果显示,protobuf 和 JSON 的优势差异在 Java、Python 等环境中尤为明显。下图是 Auth0 在两个 Spring Boot 应用程序间所做的对比测试结果。

Auth0网站做的protobuf和JSON对比测试结果

结果显示,protobuf 所需的请求时间最多只有 JSON 的 20% 左右,即速度是其 5 倍!

2

优点二:使用HTTP/2

gRPC 使用 HTTP/2 作为传输协议。我们来看看 HTTP/2 与 HTTP/1.相比有何优势。
  • 二进制传输
  • 多路复用,即可以在一个 TCP 连接上并行发送多个数据请求
  • 双向同时通信,即可以同时发送客户端请求和服务器端响应
  • 头部压缩技术,降低网络使用率

3

优点三:多语言支持、社区活跃

目前,gRPC 支持 11 种语言,GitHub 项目总星数近 6 万,其中 Go 实现和 Java 实现的星数最多。
  • Go

  • Java

  • C#

  • C++

  • Dart

  • Kotlin/JVM

  • Node

  • Objective-C

  • PHP

  • Python

  • Ruby


这正是《gRPC与云原生应用开发》作者选用 Go 和 Java 来介绍该技术的原因。书中的所有示例都提供了Go 和 Java 两种实现。
两位作者认为,随着 gRPC 的采用率不断增长,开发人员需要一本全面介绍该技术的书,能够将其作为终极指南应用于 gRPC 应用程序开发周期的各个阶段。以下是本书的目录:

目录 / 左右滑动查看

无论是只想初探 gRPC,还是想为自己的项目寻找新方案,你都能从这本易读的入门指南中有所收获。以下是内容概要。

第 1 章 gRPC 入门

你将了解 gRPC 的基础知识,并将它与 REST、GraphQL 和其他 RPC 技术等类似的进程间通信风格进行对比。
第 2 章 开始使用 gRPC
你将初次体验使用 Go 或 Java 构建完整的 gRPC 应用程序。

第 3 章 gRPC 的通信模式
你将使用真实的示例探索 gRPC 的通信模式,包括一元 RPC 模式、服务器端流 RPC 模式、客户端流 RPC 模式、双向流 RPC 模式。

第 4 章 gRPC 的底层原理
如果你是 gRPC 高级用户,并且对 gRPC 的底层原理感兴趣,那么可以通过这一章来学习这些知识。

第 5 章 超越基础知识
讲述 gRPC 的一些非常重要的高级特性,如拦截器、截止时间、元数据、多路复用、负载均衡等。

第 6 章 安全的 gRPC
你将全面理解如何保护通信通道、如何认证以及如何控制用户对 gRPC 应用程序的访问。

第 7 章 在生产环境中运行 gRPC
你将了解 gRPC 应用程序的整个开发生命周期。内容涵盖测试 gRPC 应用程序、与 CI/CD 集成、在 Docker 和 Kubernetes 上部署与运行。

第 8 章 gRPC 的生态系统
你将了解围绕 gRPC 所构建的有用的支撑组件。在使用 gRPC 构建真正的应用程序时,这些项目都很有用。



送书规则


评论中点赞最多的两位 Gopher 将获得这本书,最终截止日期本周日。

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报