Dubbo原理

在说Dubbo原理之前,要说一下RPC(远程过程调用)原理

computer1客户端发起一次远程调用,想要调用computer2服务端的一个方法,此时就会有一个客户端的一个代理对象,这个代理对象会把请求包括想要调用的方法、参数序列化后,找到服务地址,通过网络传输到服务端代理对象上,这个服务端代理对象会反序列化之后调用computer2中的方法,之后得到返回结果后序列化,再通过网络传输到客户端代理对象,这个客户端代理对象再通过反序列化把结果返回给computer1.

那么,两台服务器是怎么通信的呢?是基于Netty.

下面再讲解一下BIO和NIO

阻塞式IO:BIO   

每当服务器收到请求时,都会为每个请求创建线程,在方法没完成之前,线程是得不到释放的。这也就意味着不能同时处理大量请求。

非阻塞式IO:NIO

 

selector(选择器也可以成为多路复用器)里注册了很多channel(通道),用来监听多个channel,当selector监听到某个channel准备好了,比如说某个connect(连接)过来了;某个accept(接收数据)过来了;某个read(读取)就绪了;某个write(写入)就虚了;就会进行相应的处理。通过一个selector监听多个通道的方式,某个通道的任何一个状态准备好了,就额外开启一个线程进行处理,就不像BIO那样每个请求过来就开启一个线程慢慢阻塞。

Netty:基于NIO多路复用模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值