
GRPC
记录知识,记录人生
这个作者很懒,什么都没留下…
展开
-
GRPC多线程并发,实现一个服务端接收不同客户端连接
1.头文件#ifndef __GRPCSVR_H__#define __GRPCSVR_H__#include <memory>#include <iostream>#include <string>#include <thread>#include <pthread.h>#include <grpcpp/grpc...原创 2020-03-04 16:45:13 · 6113 阅读 · 2 评论 -
GRPC的SSL安全实现
1.利用openssl生成密钥#!/bin/shopenssl genrsa -out server.key 2048openssl req -new -x509 -days 3650 \ -subj "/C=GB/L=China/O=grpc-server/CN=localhost" \ -key server.key -out server.crtopenssl g...原创 2020-03-04 16:45:23 · 1698 阅读 · 0 评论 -
Protobuf消息设计原则
网络通信涉及到消息的定义,不管是使用二进制模式、xml、json等格式。消息都可以大体的分为 命令消息、请求消息、应答消息和指示消息4大消息类型。一般情况下每个消息还还有包含一个序列号和一个能够唯一区分类型类型的消息编号,编号可以使用字符串、整数或者枚举等。1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。我会为每个系统都定义一个MSG枚举。包含系统用到的所有消息的枚举...转载 2020-03-04 16:46:23 · 474 阅读 · 1 评论 -
gRPC 序列化机制
常用的序列化框架1.1 Java 默认的序列化机制1.2 Thrift 序列化框架1.3 MessagePack 序列化框架1.4 Protocol Buffers 序列化框架Protocol Buffers 介绍2.1 支持的数据结构2.1.1 标量值类型(基本数据类型)2.1.2 复杂数据类型2.2 IDL 文件定义2.3 代码生成2.4 序列化和反序列化接口调用2....转载 2020-03-04 16:45:51 · 3957 阅读 · 0 评论 -
gRPC 安全性设计
RPC 调用安全策略1.1 严峻的安全形势1.2 敏感数据加密传输1.2.1 基于 SSL/TLS 的通道加密1.2.2 针对敏感数据的单独加密1.3 认证和鉴权1.3.1 身份认证1.3.2 权限管控1.4 数据完整性和一致性gRPC 安全机制2.1 SSL/TLS 认证2.1.1 SSL/TLS 工作原理2.1.2 HTTP/2 的 ALPN2.1.3 gRPC 的...转载 2020-03-04 16:46:00 · 2735 阅读 · 0 评论 -
gRPC 服务调用原理
常用的服务调用方式1.1 同步服务调用1.2 并行服务调用1.3 异步服务调用服务调用的一些误区和典型问题2.1 理解误区2.1.1 I/O 异步服务就是异步2.1.2 服务调用天生就是同步的2.1.3 异步服务调用性能更高2.2 Restful API 的潜在性能风险2.2.1 HTTP1.X 的性能问题2.2.2 异步非阻塞 I/O 的 HTTP 协议栈2.2.3 推...转载 2020-03-04 16:46:10 · 1409 阅读 · 0 评论 -
gRPC 线程模型分析
RPC 线程模型1.1 BIO 线程模型1.2 异步非阻塞线程模型1.3 RPC 性能三原则gRPC 线程模型分析2.1 服务端线程模型2.1.1 服务端线程模型概述2.1.2 I/O 通信线程模型2.1.3 服务调度线程模型2.2 客户端线程模型2.2.1 客户端线程模型概述2.2.2 I/O 通信线程模型2.2.3 客户端调用线程模型线程模型总结3.1 优点3....转载 2020-03-04 16:46:50 · 1394 阅读 · 0 评论 -
gRPC 客户端创建和调用原理
gRPC 客户端创建流程1.1 背景1.2 业务代码示例1.3 RPC 调用流程1.3.1 客户端调用总体流程1.3.2 ManagedChannel 创建流程1.3.3 ClientCall 创建流程1.3.4 基于 Netty 的 HTTP/2 Client 创建流程1.3.5 HTTP/2 连接创建流程1.3.6 负载均衡策略1.3.7 RPC 请求消息发送流程1.3...转载 2020-03-04 16:47:08 · 838 阅读 · 0 评论 -
gRPC 服务端创建和调用原理
RPC 入门1.1 RPC 框架原理1.2 业界主流的 RPC 框架1.3 gRPC 简介1.3.1 gRPC 概览1.3.2 gRPC 特点gRPC 服务端创建2.1 服务端创建业务代码2.2 服务端创建流程2.3 服务端 service 调用流程2.3.1 gRPC 请求消息接入2.3.2 gRPC 消息头和消息体处理2.3.3 内部的服务路由和调用2.3.4 响应...转载 2020-03-04 16:47:37 · 722 阅读 · 0 评论 -
GRPC异步服务器和客户端
GRPC提拱了很多示例程序,可以访问下面的链接查阅:CPP例子代码编译PROTO文件proto文件如下:syntax = "proto3";package helloworld;option java_package = "com.pqtel.pqcloud.grpc";option java_outer_classname = "helloworld";service Gr...原创 2020-03-04 16:48:33 · 2169 阅读 · 0 评论 -
GRPC基础介绍
详情参考:gRPC 官方文档中文版概述gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服...原创 2020-03-04 16:47:19 · 410 阅读 · 0 评论