博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RPC与分布式服务框架Dubbo
阅读量:2338 次
发布时间:2019-05-10

本文共 1530 字,大约阅读时间需要 5 分钟。

1、什么是RPC?

(RPC 是一个软件结构概念,是构建分布式应用的理论基础)

RPC协议是指远程过程调用协议。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用服务的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

2、RPC框架

RPC框架的出现使得互联网中不同ip电脑之间、服务器之间能够相互调用其他节点的进程。

RPC框架有很多,比如:JAVA RMI、Thrift、Dubbo、grpc等。

3、RPC 与 HTTP、TCP、UDP、Socket 的区别

TCP/UDP: 都是传输协议,主要区别是 tcp 协议连接需要 3 次握手,断开需要四次挥手,是通过流来传输的,就是确定连接后,一直发送信息,传完后断开。udp 不需要进行连接,直接把信息封装成多个报文,直接发送。所以 udp 的速度更快写,但是不保证数据的完整性。

Http:超文本传输协议是一种应用层协议,建立在 TCP 协议之上

Socket:是在应用程序层面上对 TCP/IP 协议的封装和应用。其实是一个调用接口,方便程序员使用 TCP/IP 协议栈而已。程序员通过 socket 来使用 tcp/ip 协议。但是 socket 并不是一定要使用 tcp/ip 协议,Socket 编程接口在设计的时候,就希望也能适应其他的网络协议。

RPC 是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 所以 RPC 的实现可以通过不同的协议去实现比如可以使 http、RMI 等。

4、为什么需要RPC?

论复杂度,RPC框架肯定是高于简单的HTTP接口的。但毋庸置疑,HTTP接口由于受限于HTTP协议,需要Http请求头,导致传输起来效率和安全性不如RPC。

【现在问题是,遇到怎样的瓶颈了才需要或者说更适合用 RPC(比如像阿里这么大的请求并发量,简单的 HTTP 肯定达不到预期),但问题是大家所在的公司,要有像阿里这么大的量是比较少的,甚至说 1/1000 的量可能都没有,那我们还需要使用 RPC 吗?】

----http协议这种技术存在他的技术瓶颈,随着项目的子系统越来越大、接口非常多的情况,就会暴漏出很多比如扩展性差的这种问题出来。

【那 RPC 最大的优点,或者说它相比简单的 HTTP 接口,它的优势、更适合它的业务场景是怎样呢?简单的 HTTP 又哪里不足,哪些场景明显不太适合呢?】

—http 接口是在接口不多、系统与系统交互较少的情况下,解决信息初期常使用的一种通信手段;优点就是简单、直接、开发方便。利用现成的 http 协议进行传输。但是如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC 框架的好处就显示出来了。

首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销这个问题(这个问题在http2.0已经被解决);其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方法来说是无感知、统一化的操作。第三个来说就是安全性。最后就是流行的服务化架构、服务化治理,RPC框架是一个强力的支撑

【但是我们为什么要应用RPC层呢?】

a、灵活部署
b、解耦

5、分布式服务框架Dubbo

Dubbo 是由阿里巴巴开源的一个高性能、基于 Java 开源的远程调用框架。正如在许多RPC 系统中一样,Dubbo 是基于定义服务的概念,指定可以通过参数和返回类型远程调用的方法。

Dubbo提供三个核心的功能:基于接口的远程调用(服务的提供)、容错和负载均衡,以及服务的自动注册与发现

架构图:

在这里插入图片描述

转载地址:http://vugpb.baihongyu.com/

你可能感兴趣的文章
整合Struts和Spring
查看>>
Hibernate和Spring的整合
查看>>
我的校招——同花顺
查看>>
Ego Surfing = Ego + Surfing
查看>>
13日cnblog会谈摘要
查看>>
尝试解决MT的Add to My Yahoo!的字符集问题
查看>>
MoreGoogle提供的网页缩略图服务
查看>>
每天到REFERER到我的网站上来的主页上去溜达一下
查看>>
北京羽毛球场地预定电话
查看>>
本周CNBlog例会:Grassland搜索的后台迁移
查看>>
Flickr的网络收藏夹服务
查看>>
BLOG="Better Listings On Google" ? Google BlogSearch上的 BSP索引收录量比较
查看>>
用sed批量替换文件中的字符
查看>>
九型性格心理测试 (From Ulla Zang荣格的个人性格测验题目)
查看>>
MT模板修改2则: 评论分段和firefox的缺省字体适应
查看>>
[MT] 3.32升级备忘
查看>>
MT 3.33发布: 安全漏洞修正
查看>>
给Blog加上雅虎通PingMe服务:和网站用户即时聊天
查看>>
顶级域名注册分布统计:2006年09月 .com .de .net .uk .cn
查看>>
雅虎通可以批量添加MSN用户了
查看>>