搞懂分布式RPC开源框架-gRPC

news2024/9/21 2:39:49

搞懂分布式RPC开源框架-gRPC
rpc解决了什么问题,与消息队列应用场景比较
rpc(远程调用方法):请求回应
socket网络问题 ------> 消除端到端交互问题

业务场景:
rpc:同步地处理
消息队列:不紧迫的非必要的 异步解决问题 ,比如短信服务。

  1. grpc组成和service API
    grpc 组成:http 2.0 + protobuffer
    http1.0 提供长连接 请求回应的模式
    http1.1 pipeline 可以发送多个请求得到多个回应
    http2.0 stream 传输的 可以想回应的时候,回应。随时随地,采用分帧

分布式系统采用不同的语言,要跨语言(c++x)、解压缩要快、数据流小(json、xml x)、msgpack要压缩kv、protobuffer只压缩v;
在这里插入图片描述
对于整数极大的压缩
在这里插入图片描述
grpc service API
1 、unary api 一元普通模式:
一个请求,一个回应
在这里插入图片描述

2、client stream api客户端流模式
多个请求,一个回应,服务端会将多个请求汇总成一个流;
在这里插入图片描述

3、server stream api服务端流模式
serve端任务繁重,一个请求会有多个返回
在这里插入图片描述

4、bidirectional stream api 双端流
多个请求,多个返回值
在这里插入图片描述
C++: 同步阻塞的调用异步非阻塞的调用(callback)

  1. grpc关键特性:超时、重试、拦截器、命名解析、负载均衡、安全连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【回眸】又是一年毕业季,怎么利用ChatGPT 4.0 优化毕业论文?

目录 【回眸】又是一年毕业季,怎么利用ChatGPT 4.0 优化毕业论文? 前言 ChatGPT4.0降重提示词(3.5表现略逊色一些,不过也可以用这个来作为提示词) 举个例子 降重前的原文 构思提示词 确定提问词 选用合适的翻译…

CloudCompare如何进行二次开发?

文章目录 0.引言1.界面设计2.功能实现3.结果展示 0.引言 CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件(插件开发详见:CloudCompare如何进行二次开发之插件开发?)实现二次开…

SpringBoot配置文件(properties与yml详解)

目录 一,SpringBoot配置文件 1,配置文件的作用 2,配置文件的格式 二,properties 配置文件说明 1,properties 基本语法 2,读取配置文件 3,properties 的缺点 三,yml配置文件说…

掌握Linux指令和权限:一个入门教程

目录 一.Linux基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkair指令6.rmdir和rm指令 一.Linux基本指令 1.ls指令 语法格式:ls [选项][目录或者文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其…

Chrome扩展开发指南

前言 Chrome 扩展(通常也叫插件)也是软件程序,使用 Web(HTML, CSS, and JavaScript)技术栈开发。允许用户自定义 Chrome 浏览体验。开发者可以通过增加特效或功能来优化体验。例如:效率工具、信息聚合等等。…

数据结构考研版——KMP算法

一、 我们先看下面这个算法当比较到不匹配的时候 模式串后移一位,并且让比较指针回去,这就叫做指针的回溯,回溯就是造成这个简单算法效率比较低的原因 这种是朴素模式匹配算法,时间复杂度比较高 int index(Str str,Str substr…

MAVEN安装与配置

文章目录 一、安装MAVEN二、在IDEA中进行配置 一、安装MAVEN 打开MAVEN官网下载:https://maven.apache.org/download.cgi 选择这两个进行下载,然后直接解压缩到指定的安装目录即可。 配置环境变量 1)MAVEN_HOME设置为maven的安装目录 2&…

指令段间及文件间参数调用过程(64位 Intel架构)

指令段间及文件间参数调用过程(64位 Intel架构) 文章目录 指令段间及文件间参数调用过程(64位 Intel架构)一. 指令段间的参数调用过程1.1 推论1.2 验证 二. 文件间的参数调用过程2.1 推论2.2 验证 三. 指令解释相关补充 一. 指令段…

基于html+css的图片展示24

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

docker安装rocketMQ

1、安装jkd1.8 docker pull java:8 或者 docker pull openjdk:8 查看已安装的镜像: docker images 运行jdk命令 docker run -d -it --name java-8 java:8 进入JDK 容器 docker exec -it java-8 /bin/bash 查看java版本,进入java-8容器后输入 &#x…

金融数字新型基础设施创新开放联合体今日成立

4月18日,“金融数字新型基础设施创新开放联合体”(以下简称:联合体)在上海成立。联合体由上海银行、复旦大学金融科技研究院、中电金信共同发起,首批成员单位汇聚产业链与供给侧的中坚力量:国泰君安证券、太…

基于 BaiduAI 的人脸检测系统(PyQt5图形化界面实现)

文章目录 写在前面的话总体结构学生端教师端教务处系统 总结 写在前面的话 前几天有个小伙伴私我会不会做关于人脸检测与识别的小项目,奈何我现在主要是学习研究NLP了,所以关于CV的很多东西也有点力不从心,突然想起来去年我的毕业设计就是做…

【Vue】学习笔记-内置指令/自定义指令

内置指令 自定义指令 内置指令v-text 指令v-html指令v-cloak指令v-once指令v-pre指令 自定义指令 内置指令 我们学过的指令: v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简写为 v…

遍历思路与子问题思路:详解二叉树的基本操作

二叉树的结构定义: public class BinaryTree {//内部类 表示一个结点static class TreeNode {TreeNode left; //左子树TreeNode right; //右子树char value; //结点值TreeNode(char value) {this.value value;}}public TreeNode root; //根节点... } …

云原生时代下,应用全生命周期管理之道

引言 过去 10 年间,云计算已经从单一的 IT 服务演变成为新一代的软件架构范式,进而赋能企业管理和生产模式的创新。云计算也经历了从“资源上云”到“深度用云”的发展阶段。 在云原生时代,应用全生命周期管理之道成为企业关注的一个焦点。在…

蓝牙耳机什么品牌的音质好?300左右音质最好的蓝牙耳机推荐

随着蓝牙技术的发展,蓝牙耳机品牌也越来越多。要说什么品牌的音质好?首先还是要根据自己的预算出发。在此,我来给大家推荐几款300左右音质最好的蓝牙耳机,可以当个参考。 一、南卡小音舱Lite2蓝牙耳机 参考价:239 发…

Self-supervised learning of a facial attribute embedding from video

Self-supervised learning of a facial attribute embedding from video 译题:视频中人脸属性嵌入的自监督学习 论文题目Self-supervised learning of a facial attribute embedding from video译题视频中人脸属性嵌入的自监督学习时间2018年开源代码地址https://…

《Java》基本类型的比较和引用类型的比较

目录 基本类型 引用数据类型 基本类型之间的比较 基于Comparable的比较 总结 👑作者主页:Java冰激凌 📖专栏链接:Java 基本类型 Java中提供了基本类型有八种 分别是 byte short int long float double char boolean 基本类型…

EL 表达式--各种运算-代码演示--EL 的 11 个隐含对象--pageContext 对象介绍--JSTL 标签库介绍--core 核心库--综合代码

目录 EL 表达式 EL 表达式介绍 代码示例 EL 常用输出形式 代码演示 Book.java el_input.jsp EL 运算操作 基本语法语法: 关系运算 逻辑运算 算数运算 EL 的 empty 运算 应用实例 empty.jsp EL 的三元运算 应用实例 EL 的 11 个隐含对象&#xff0c…

Unity-ML-Agents-训练生成的results文件解读-PushBlock

前言 训练结果文件路径:E:\ml-agents-release_19\results\push_block_test_02(具体路径以自己电脑为准) ML-Agents安装和PushBlock训练过程请见:(注意:push_block_test_02没有全部训练完毕) …