| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 什么是RPC框架 -> 正文阅读 |
|
[网络协议]什么是RPC框架 |
目录 前言:今天在阅读阿里开发规范2016.12时,发现在命名规范中提到,在POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误 比如说:定义基本数据类型boolean isSuccess;的属性,它的方法也是isSuccess(),RPC框架在反向解析的时候会“以为”对应的属性名称是success,导致属性获取不到,抛出异常 我就有了一个疑问,什么是RPC框架?就去了解了下,在此记录 参考网址:什么是RPC框架 - 知乎 1.简介1.1什么是RPCRPC框架,全程Remote Procedure Call 其实就是一种远程的程序调用,远程服务调用,具体的实现有下面四种角色构成
1.2 演变过程什么是提供方,什么是消费方呢? 比如有A,B两台独立的服务器,A定义了一个方法,B想要调用A定义的方法,A提要求,让B如果想要调用自己,得提供姓名和手机号,B同意了,远程调用了A 在这里A就是服务的提供者,在远程调用过程中的 “被消费方“ ? ? ? ?而B就是服务的消费者,在远程调用过程中的 “消费方” ?后续如果服务提供方A ,要搬家了,得换地址 ?那么服务消费方B,也得跟着改代码,改成A新的地址 ?那B就觉得太麻烦了 能不能把修改A新的地址和调用A这两件事绑定在一起呢,这样就不用都改了 ?B就把底层逻辑提取出来进行了封装,每次直接使用即可 后续服务提供方A,又提供了一个新方法,有新的功能,新的返回数据 服务消费方B就觉得,你每多一个方法,我就封装一个调用逻辑,太麻烦了,能不能共用同个调用逻辑呢 B就想办法,做一个代理模式来实现共用调用逻辑,解决这个问题 这就形成了简单的一个框架,当然再往下延伸还有很多
还有一些是这些中心之间的通信协议,最基础的是TCP/IP协议,也是最有效不会过时的协议。像HTTP协议等就是基于TCP/IP升级的一种协议,通过URL传输JSON字符串来实现,比web serivce高效一些 1.3 框架现在主流的框架有Dubbo、Spring Cloud等,微博内部使用的Motan,腾讯内部使用的Tars。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:50:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |