惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News - Newest:
Hacker News - Newest: "LLM"
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
H
Heimdal Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
N
News and Events Feed by Topic
H
Hacker News: Front Page
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
SecWiki News
SecWiki News
N
News | PayPal Newsroom
T
Tor Project blog
W
WeLiveSecurity
A
Arctic Wolf
Security Archives - TechRepublic
Security Archives - TechRepublic
S
Secure Thoughts
月光博客
月光博客
AWS News Blog
AWS News Blog
D
Docker
C
CERT Recently Published Vulnerability Notes
MyScale Blog
MyScale Blog
Google Online Security Blog
Google Online Security Blog
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
I
InfoQ
人人都是产品经理
人人都是产品经理
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
Recorded Future
Recorded Future
罗磊的独立博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
D
DataBreaches.Net
S
Security Affairs
WordPress大学
WordPress大学
T
Threatpost
Microsoft Security Blog
Microsoft Security Blog
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
S
SegmentFault 最新的问题
B
Blog RSS Feed
Project Zero
Project Zero
P
Proofpoint News Feed

文章列表 on polarisxu

通过一个例子让你彻底掌握 Go 工作区模式 这道题正确率竟然只有 22% Go 开源项目推荐:一个简单的 Go 练手项目 go test 如何禁用缓存? Go1.18 快讯:constraints 包被移除标准库 跟着 Go 作者学泛型 「2022 版」轻松搞定 Go 开发环境 鹅厂小哥用行动反对加班:程序员加班能被终结吗? Go 为什么选择 Gopher 作为吉祥物? 本地如何配置多个 GitHub/Gitee 账号? 为 Java 开发者准备的 Go 教程 02:Java 有而 Go 无 GitHub 发现了 studygolang 项目依赖的漏洞 Typora 宣布收费后,这款开源 Markdown 编辑器火了 为 Java 开发者准备的 Go 教程 01:漫游了 我的 2021 年终总结 泛型版 singleflight:Go 中如何防止缓存击穿? 2021 年你写了多少代码?这个 Go 工具帮你统计 Go1.18 新特性:TryLock Go 泛型入门教程 程序员瑞士军刀:各种结构的转换工具 终于有 Go 版的 Elasticsearch 了 Go泛型系列:maps 包讲解 Go 1.18 中的 any 是什么? Go1.18 快讯:新的 IP 包 Go编程模式:详解函数式选项模式 Go泛型系列:slices 包讲解 Nginx 竟然也有 playground — Go 语言构建的 Go泛型系列:Go1.18 类型约束那些事 Go1.18 快讯:Module 工作区模式 Go1.18 快讯:新增的 Cut 函数太方便了 Go1.18 快讯:废弃了这个 API Go1.18 快讯:新增字符串 Clone API Go:如何获得项目根目录? Go 如何获取和设置环境变量 重磅变动:更快找到微信公众号里的Go文章 Go 这样设置版本号:我们的项目也可以 假期结束,推荐 2 本 manning 出的 Go 图书 Go Fiber 框架系列教程 04:测试应用 Go Fiber 框架系列教程 03:中间件 Go泛型系列:提前掌握Go泛型的基本使用 推荐一个 Go GUI 实战项目 Go Fiber 框架系列教程 02:详解相关 API 的使用 Go Fiber 框架系列教程 01: 和 Express 对比学习 Go Module:私有不合规库怎么解决引用问题 Go1.17 新特性:go get 变了 Go1.17 新特性:testing 包的相关变化 StackOverflow 上关于 Go select 死锁的问题 新书推荐:用 Gin 框架构建分布式应用 Go 官网要变天。。。 Gin 这是要成为 Go 官方框架? 扬眉吐气:刚刚,Go 已经默认支持泛型了 Go 1.17 新特性:Module 有哪些变化? Go 第三方库推荐:类型转换如此简单 担心密码提交到 GitHub?建议使用这个 Go 开源工具 Go 的时间格式化为什么是 2006-01-02 15:04:05? GitHub 为 Go 社区带来安全支持 Go开源项目推荐:500行代码确认请求时间花在哪 一道关于 len 函数的诡异 Go 面试题解析 厉害了我的 Go:推荐系统都有开源实现 Go1.17 新特性:新版构建约束 这个工具真好:看看你的Go项目依赖有无漏洞 网友很强大,发现了Go并发下载的Bug Rust 劝退系列 09:函数 Go项目实战:一步步构建一个并发文件下载器 这本 Go 新书挺期待的:100 个常见错误 Go 启用新的官方问答社区 这是要干嘛?!微软招 Go 编译器全职开发人员 Go1.17 快报之标准库越来越注重易用性 Go1.17 新特性之切片变数组 回顾 Go 官网的演变史 站长8年前的Go代码竟然进入大厂的项目里了 Go图书翻译:一个好消息,一个坏消息 不怕烂尾!决定组织翻译这本 Go 图书 Rust 劝退系列 08:模式匹配 一本花了2.5年写成的Go免费在线图书 被黑惨了:一句话,说明自己会 Go,咋整? Go1.16 中的新函数 signal.NotifyContext 怎么用? Go 1.17 新特性提前学之测试执行随机化 Rust 劝退系列 07:流程控制 官方的 Go 多版本管理:使用和原理 Rust新书:给你一个劝退的理由 周刊题解:常量表达式这个规则应该了解下 盘点那些使用 Go 语言的国外公司 编写了50万行Go代码是一种什么体验 Rust 劝退系列 06:常量 Uber 使用 Go 的规模这么大?!都自己定制的 Go 编译器了 Go Team Leader — rsc 大神新开源了一个库,增强模板功能 再一次看到了 Go 的节制:int128 类型要不要支持? Rust 劝退系列 05:复合数据类型 「卷」有理论依据:海勒姆定律—Go又是怎么卷的 Go 真的也可以进行 GUI 开发:还有这样的图书呢 Rust 劝退系列 04:基本数据类型 我的 Go 语言书单 Rust 劝退系列 03:变量 我又来推荐免费 Go 新书了:一本用 Go 讲架构的书 注释竟然还有特殊用途?一文解惑 //go:linkname 指令 这个功能,公众号、微信群会不会被玩坏? 一道 Go 闭包题,面试官说原来自己答错了:面别人也涨知识 Rust 劝退系列 02:第一个 Rust 程序 Rust 劝退系列 01:打造开发环境
周末看完这本 gRPC 的书后,我决定送 10 本给读者
2021-03-16 · via 文章列表 on polarisxu

大家好,我是站长 polarisxu。

牛年春晚,Go语言中文网组织的活动,送了 10 本 《gRPC与云原生应用开发:以Go和Java为例》。上周末,我翻了下这本书,决定对该书做一个介绍,同时再送 10 本给我的读者。

01 gRPC 是什么?

这是一本关于 gRPC 的书,所以简单介绍下 gRPC 是什么,相信很多人不陌生。

2015 年 2 月 26 日,谷歌宣布开源 gRPC,并称其「基于公司多年的分布式系统构建经验」。因为在这之前,谷歌使用一个名为 Stubby 的通用 RPC 基础设施连接其数据中心内部和跨中心运行的大量微型服务已有十多年,可以认为 gRPC 是 Stubby 的下一个版本。自那之后,人们给 gRPC 贴上了许多漂亮的「标签」:极速、高性能、微服务间通信首选、多语言支持、双向流模式、protobuf、HTTP/2 等等。

借用官方的一张图展示 gRPC 多端交互:

Concept Diagram

关于 gRPC,官方一句话描述是:

A high performance, open source universal RPC framework

gRPC 官网:https://grpc.io/,目前已经是 CNCF 的孵化项目。

02 gRPC 的应用场景

总的来说,gRPC 可以高效地连接数据中心内部和跨数据中心的服务,并为负载平衡、跟踪、健康检查和身份验证提供可插拔的支持。它也适用于最后一英里的分布式计算连接设备,移动应用程序和浏览器的后端服务。主要使用场景有:

  • 在微服务风格的体系结构中有效连接多语言服务;
  • 连接移动设备、浏览器客户端和后端服务;
  • 开发与云服务器通信的移动客户端;
  • 构建高可扩展、低延迟的分布式系统和微服务;
  • 设计一个新的协议,需要准确,高效和语言独立;
  • 分层设计,以支持扩展,例如身份验证、负载平衡、日志记录和监控等;
  • 。。。

03 gRPC 的主要优点

相比 RESTful 服务或其他 RPC 框架,gRPC 有哪些突出的优点?

1)极速

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

与采用文本格式的 JSON 相比,采用二进制格式的 protobuf 在速度上可以达到前者的 5 倍

2)使用 HTTP/2

gRPC 使用 HTTP/2 作为传输协议。我们来看看 HTTP/2 与 HTTP/1.X 相比有何优势。

  • 二进制传输
  • 多路复用,即可以在一个 TCP 连接上并行发送多个数据请求
  • 双向同时通信,即可以同时发送客户端请求和服务器端响应
  • 头部压缩技术,降低网络使用率

3)多语言支持、社区活跃

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

  • Go
  • Java
  • C#
  • C++
  • Dart
  • Kotlin/JVM
  • Node
  • Objective-C
  • PHP
  • Python
  • Ruby

此外,gRPC 还支持多平台,比如 Web、Android,以及 Flutter、iOS 等。

04 gRPC 与云原生应用开发

拿到这本书时,我是有点吃惊的:我去,这么薄呢!?翻开一看,才 160 页,而实际正文大概 150 也左右。但当我阅读该书时,发现虽然篇幅不长,但包含的内容还是挺多的。

本书一共 8 章,章节内容如下:

第 1 章 gRPC 入门

介绍 gRPC 的基础知识,并将它与 REST、GraphQL 和其他 RPC 技术等类似的进程间通信风格进行对比。

第 2 章 开始使用 gRPC

通过一个具体例子,完整的体验 gRPC 应用程序,而且是同时使用 Go 和 Java 实现。

第 3 章 gRPC 的通信模式

通过真实的示例探索 gRPC 的通信模式,包括一元 RPC 模式、服务器端流 RPC 模式、客户端流 RPC 模式、双向流 RPC 模式。

第 4 章 gRPC 的底层原理

作为一个合格的码农,我们不能停留在简单使用上,否则换工作面试后怎么办?!即使不面试,作为一个“上进”的码农,我们也应该了解了解 gRPC 的底层原理,而这章就设计相关知识。

第 5 章 超越基础知识

这一章属于应用的进阶。讲解了 gRPC 的一些非常重要的高级特性,如拦截器、截止时间、元数据、多路复用、负载均衡等。

第 6 章 安全的 gRPC

互联网时代,安全是很重要的。本章带你全面理解如何保护通信通道、如何认证以及如何控制用户对 gRPC 应用程序的访问。

第 7 章 在生产环境中运行 gRPC

学习完前面的章节,你大概已经搞定了 gRPC 服务。接下来就该测试、上线部署了。本周讲解 gRPC 应用程序的整个开发生命周期,包括测试 gRPC 应用程序、与 CI/CD 集成、在 Docker 和 Kubernetes 上部署与运行。

第 8 章 gRPC 的生态系统

最后一章介绍 gRPC 相关的支撑组件,得益于 gRPC 的可扩展性,社区有很不错的组件可用,这些构成了 gRPC 的生态。在实际项目中,这些生态组件会很有用哦。

附上一张我整理的评价微服务框架好坏的思维导图,供参考:

05 重点来了:送书

相信你是冲着白嫖来的,但我希望你看了上面我啰嗦的内容。

如何得到该书?借用书中的一个小点:留言说说 gPRC 中的 g 代表什么。2021 年 3 月 17 日 22 点前,从留言点赞最多的 20 位中随机选 10 位幸运小伙伴。(我会优先送给本公众号的忠实读者,包括经常阅读我的文章,转发、点赞、在看、留言、打赏等互动行为,因为后台是可以看到的哦!所以,对本文来个四连吧,很可能中奖的就是你了!)

(注意:以上只针对 「polarisxu」公众号,其他渠道无效)

最后也欢迎大家直接通过扫码购买本书。支持本书,支持中文翻译者。