gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes
暫譯: gRPC:快速上手:使用 Go 和 Java 為 Docker 和 Kubernetes 建立雲原生應用程式

Indrasiri, Kasun, Kuruppu, Danesh

買這商品的人也買了...

商品描述

Get a comprehensive understanding of gRPC fundamentals through real-world examples. With this practical guide, you'll learn how this high-performance interprocess communication protocol is capable of connecting polyglot services in microservices architecture, while providing a rich framework for defining service contracts and data types.

Complete with hands-on examples written in Go, Java, Node, and Python, this book also covers the essential techniques and best practices to use gRPC in production systems. Authors Kasun Indrasiri and Danesh Kuruppu discuss the importance of gRPC in the context of microservices development.

商品描述(中文翻譯)

透過實際案例全面了解 gRPC 的基本概念。這本實用指南將教您如何利用這個高效能的進程間通訊協議來連接微服務架構中的多語言服務,同時提供一個豐富的框架來定義服務合約和數據類型。

本書包含用 Go、Java、Node 和 Python 編寫的實作範例,還涵蓋了在生產系統中使用 gRPC 的基本技術和最佳實踐。作者 Kasun Indrasiri 和 Danesh Kuruppu 討論了 gRPC 在微服務開發中的重要性。

作者簡介

Kasun Indrasiri is an author and an evangelist of Microservices and Enterprise Integration Architecture with over ten years of experience in building distributed systems. He is the director of Integration Architecture at WSO2 and the product manager of the WSO2 Enterprise Integrator. He has authored Microservices for Enterprise (Apress, 2018) and Beginning WSO2 ESB (Apress, 2017) books and has spoken at several conferences including O'Reilly Software Architecture Conference 2019 in San Jose, GOTO Con 2019 in Chicago, and WSO2 Conferences in San Francisco, London, and Barcelona. Kasun lives in San Jose, California and has founded the "Silicon Valley Microservices, APIs and Integration" Meetup, which is one of the largest microservices meetups in the San Francisco Bay area.

Danesh Kuruppu is an Associate Technical Lead at WSO2 and with over five years of experience in Enterprise Integration and Microservices technologies. Danesh is the main designer and developer of adding gRPC support for the open source, cloud native programming language, Ballerina. He is part of the gRPC community and a key contributor to the WSO2 Microservices Framework for Java and WSO2 Governance Registry.

作者簡介(中文翻譯)

Kasun Indrasiri 是一位作者及微服務(Microservices)和企業整合架構(Enterprise Integration Architecture)的推廣者,擁有超過十年的分散式系統建置經驗。他是 WSO2 的整合架構總監及 WSO2 企業整合器(Enterprise Integrator)的產品經理。他著有《Microservices for Enterprise》(Apress, 2018)和《Beginning WSO2 ESB》(Apress, 2017)兩本書,並在多個會議上發表演講,包括 2019 年在聖荷西舉行的 O'Reilly 軟體架構會議、2019 年在芝加哥的 GOTO Con,以及在舊金山、倫敦和巴塞隆納的 WSO2 會議。Kasun 目前居住在加州聖荷西,並創立了「矽谷微服務、API 和整合」的 Meetup,這是舊金山灣區最大的微服務聚會之一。

Danesh Kuruppu 是 WSO2 的副技術負責人,擁有超過五年的企業整合和微服務技術經驗。Danesh 是為開源的雲原生程式語言 Ballerina 添加 gRPC 支援的主要設計師和開發者。他是 gRPC 社群的一員,也是 WSO2 Java 微服務框架和 WSO2 治理註冊中心的主要貢獻者。

目錄大綱

Preface
Why Did We Write This Book?
Who Is This Book For?
How This Book Is Organized
Using Code Examples
Conventions Used in This Book
O’Reilly Online Learning
How to Contact Us
Acknowledgments


1. Introduction to gRPC
What Is gRPC?
Service Definition
gRPC Server
gRPC Client
Client–Server Message Flow
Evolution of Inter-Process Communication
Conventional RPC
SOAP
REST
Inception of gRPC
Why gRPC?
gRPC Versus Other Protocols: GraphQL and Thrift
gRPC in the Real World
Netflix
etcd
Dropbox
Summary

2. Getting Started with gRPC
Creating the Service Definition
Defining Messages
Defining Services
Implementation
Developing a Service
Developing a gRPC Client
Building and Running
Building a Go Server
Building a Go Client
Running a Go Server and Client
Building a Java Server
Building a Java Client
Running a Java Server and Client
Summary

3. gRPC Communication Patterns
Simple RPC (Unary RPC)
Server-Streaming RPC
Client-Streaming RPC
Bidirectional-Streaming RPC
Using gRPC for Microservices Communication
Summary

4. gRPC: Under the Hood
RPC Flow
Message Encoding Using Protocol Buffers
Encoding Techniques
Length-Prefixed Message Framing
gRPC over HTTP/2
Request Message
Response Message
Understanding the Message Flow in gRPC Communication Patterns
gRPC Implementation Architecture
Summary

5. gRPC: Beyond the Basics
Interceptors
Server-Side Interceptors
Client-Side Interceptors
Deadlines
Cancellation
Error Handling
Multiplexing
Metadata
Creating and Retrieving Metadata
Sending and Receiving Metadata: Client Side
Sending and Receiving Metadata: Server Side
Name Resolver
Load Balancing
Load-Balancer Proxy
Client-Side Load Balancing
Compression
Summary

6. Secured gRPC
Authenticating a gRPC Channel with TLS
Enabling a One-Way Secured Connection
Enabling an mTLS Secured Connection
Authenticating gRPC Calls
Using Basic Authentication
Using OAuth 2.0
Using JWT
Using Google Token-Based Authentication
Summary

7. Running gRPC in Production
Testing gRPC Applications
Testing a gRPC Server
Testing a gRPC Client
Load Testing
Continuous Integration
Deployment
Deploying on Docker
Deploying on Kubernetes
Observability
Metrics
Logs
Tracing
Debugging and Troubleshooting
Enabling Extra Logging
Summary

8. The gRPC Ecosystem
gRPC Gateway
HTTP/JSON Transcoding for gRPC
The gRPC Server Reflection Protocol
gRPC Middleware
Health Checking Protocol
gRPC Health Probe
Other Ecosystem Projects
Summary
Index

目錄大綱(中文翻譯)

Preface

Why Did We Write This Book?

Who Is This Book For?

How This Book Is Organized

Using Code Examples

Conventions Used in This Book

O’Reilly Online Learning

How to Contact Us

Acknowledgments



1. Introduction to gRPC

What Is gRPC?

Service Definition

gRPC Server

gRPC Client

Client–Server Message Flow

Evolution of Inter-Process Communication

Conventional RPC

SOAP

REST

Inception of gRPC

Why gRPC?

gRPC Versus Other Protocols: GraphQL and Thrift

gRPC in the Real World

Netflix

etcd

Dropbox

Summary

2. Getting Started with gRPC

Creating the Service Definition

Defining Messages

Defining Services

Implementation

Developing a Service

Developing a gRPC Client

Building and Running

Building a Go Server

Building a Go Client

Running a Go Server and Client

Building a Java Server

Building a Java Client

Running a Java Server and Client

Summary

3. gRPC Communication Patterns

Simple RPC (Unary RPC)

Server-Streaming RPC

Client-Streaming RPC

Bidirectional-Streaming RPC

Using gRPC for Microservices Communication

Summary

4. gRPC: Under the Hood

RPC Flow

Message Encoding Using Protocol Buffers

Encoding Techniques

Length-Prefixed Message Framing

gRPC over HTTP/2

Request Message

Response Message

Understanding the Message Flow in gRPC Communication Patterns

gRPC Implementation Architecture

Summary

5. gRPC: Beyond the Basics

Interceptors

Server-Side Interceptors

Client-Side Interceptors

Deadlines

Cancellation

Error Handling

Multiplexing

Metadata

Creating and Retrieving Metadata

Sending and Receiving Metadata: Client Side

Sending and Receiving Metadata: Server Side

Name Resolver

Load Balancing

Load-Balancer Proxy

Client-Side Load Balancing

Compression

Summary

6. Secured gRPC

Authenticating a gRPC Channel with TLS

Enabling a One-Way Secured Connection

Enabling an mTLS Secured Connection

Authenticating gRPC Calls

Using Basic Authentication

Using OAuth 2.0

Using JWT

Using Google Token-Based Authentication

Summary

7. Running gRPC in Production

Testing gRPC Applications

Testing a gRPC Server

Testing a gRPC Client

Load Testing

Continuous Integration

Deployment

Deploying on Docker

Deploying on Kubernetes

Observability

Metrics

Logs

Tracing

Debugging and Troubleshooting

Enabling Extra Logging

Summary

8. The gRPC Ecosystem

gRPC Gateway

HTTP/JSON Transcoding for gRPC

The gRPC Server Reflection Protocol

gRPC Middleware

Health Checking Protocol

gRPC Health Probe

Other Ecosystem Projects

Summary

Index

最後瀏覽商品 (19)