RPC的介绍

1、什么是RPC
RPC—Remote Procedure Call 远程过程调用
网上有一篇博客说的很简练,拿洗衣服来说:
本地过程调用:如果你想洗衣服,直接去卫生间把洗衣机的开关打开就行
远程调用:你在外面逛街,想起来家里还有衣服没有洗,就打电话:老公把洗衣机开关打开洗衣服;

2、分布式与集群:
可以说分布式促使RPC的应运而生,分布式和集群的概念,看到网上有一个很形象的例子:

集群:例如如果我们开发一个系统,小明负责需求、开发、测试、部署,由于工作量大,小明忙不过来就请了一个小花来帮忙开发,小花做的事情和小明一样也是需求、开发、测试,部署,小明和小花就是集群的关系坐着同一件事,可以相互替代,当小明请假的时候小花能顶上;

部署同一个服务至多个服务器是集群

分布式:为了让小明和小花专心的开发,公司招聘了需求、测试、部署人员,小明和小花与这些需求、测试、部署人员就是分布式关系;

将一个项目拆分成多个业务系统,部署至不同的服务器是分布式

3、分布式与RPC
我们将一个项目拆分成多个业务,例如我们开发了一个系统"拼多多"吧,我们将拼多多的商城这个项目拆分成了“查看商品系统”、“订单系统”、“库存系统”,“支付系统”,“登陆系统”、等多个模块,如果我看好了一款商品,准备下单,我在查看商品系统点击下单,其实调用的是订单系统的业务;非查看商品系统本地的方法栈的调用;

本地调用
在这里插入图片描述

分布式
在这里插入图片描述

分布式的促使了RPC的应运而生,其中远程调用的解决方法:

1、server2中对外提供接口,例如restful的接口,例如:http://ip:port/serverName/add?userId=1&password=123&orderid=1223

嗯是的,这样调用每次是不是需要构建请求的url地址,准备httpRequest包装发送的参数

2、在server1中使用代理对象,

spring IOC注入的方式在使用时@autowired 自动注入,spring框架发现CartService在配置文件中配置过,spring框架不找对象,交给dubbo框架dubbo框架运行动态代理
使用
在这里插入图片描述

dubbo,用socket联接提供者,把接口名,方法名,参数发给提供者,提供者用反射运行方法,把结果通过socket返回来

配置

在这里插入图片描述

RPC解决了分布式系统之间调用的问题,让调用者像调用本地方法一样,不用去关注远程服务的逻辑

4、RPC的几个应用的框架:

dubbo
在这里插入图片描述

1、服务提供者将ip及port发给注册中心;
2、zk注册中心将提供者消息发给消费者;
3、消费者获取服务列表,远程调用提供者;

thift
最近在学习这个东西,先把处理的图黏贴一下吧:
图片自来百度

后续文章会有介绍应用

springcloud

先说下springclound的五大神兽吧
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config

图片来自百度

也在继续学习后续会有章节介绍

发布了15 篇原创文章 · 获赞 7 · 访问量 2863

猜你喜欢

转载自blog.csdn.net/xiaocaodeshengri/article/details/90294289