大型分布式网站--读书笔记(一)

来源:互联网 发布:js满足条件自动跳转 编辑:程序博客网 时间:2024/05/22 17:48

面向服务的架构(SOA)

1.基于tcp协议的RPC

RPC:远程过程调用。成熟方案:RMI, WebServices。

优点:相比单台服务器硬件成本的限制,rpc将本地调用转变为调用远程服务器上的方法(对系统的处理能力和吞吐量带来无限制的提升能力)



实现:rpc包括服务提供者、服务调用方。

调用过程:调用方发送rpc请求到提供者,提供者根据消费者传来的参数执行请求方法,提供方将执行结果返回给提供方,完成一次rpc调用。

扩展:随着业务的扩展,服务需要扩容,根据不同的业务和服务进行分组,调用方根据提供方的地址信息和分组信息进行路由,服务提供方可能不再是单台服务器,而是一个集群,则根据相应的负载均衡策略,选取其中一台服务器进行调用。

2.对象的传输

rpc远程过程调用必然会涉及到的对象的传输,无论是哪种数据类型,最终都要转换成二进制的形式在网络上进行传输(涉及到对象的序列化)
对象的序列化:对象转换为二进制流的过程。
对象的反序列化:二进制流转换成对象的过程。
其中有很多成熟的方案可供选择:阿里的fastjson. jackson等等。

3.tcp协议来实现RPC

接口及实现类:需要接口和其对应的实现类
服务调用方:获取请求数据(接口名称、方法、方法传参、服务器提供方端口号),通过输出流传递给服务器。
服务提供方:接受调用方的请求参数,根据请求调用相应方法(使用反射调用接口),将请求结果通过输入流的形式传输给调用方。

基于HTTP协议的RPC

http(超文本传输协议)
tcp实现的rpc
优点:tcp处于协议栈的下层,协议字段定制化,减少网络传输字节数,降低网络开销,提高性能,提高更大的系统吞吐量和并发数。
缺点:过多关注底层复杂细节,实现价值更高,很难实现跨平台的调用。不同平台的应用程序需要开发不同的工具包来请求发送和相应解析,工作量大。
http实现的rpc:
优点:使用json或者xml格式的响应数据,很多开源的解析工具可供使用。http协议使开发人员将更多的精力放在业务上,而非底层实现细节。
缺点:由于处于上层协议,发送同等内容,占用字节数比tcp传输更多,效率更低,信息传输时间更长。







阅读全文
0 0
原创粉丝点击