大型分布式网站--读书笔记(一)
来源:互联网 发布: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
- 大型分布式网站--读书笔记(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- [转]大型网站架构系列:分布式消息队列(一)
- 一、创建Maven项目(大型分布式网站架构设计)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- 大型网站架构系列:分布式消息队列(一)
- Android开发之getX,getRawX,getWidth,getTranslationX等的区别
- Python中文编码
- springboot 使用校验框架validation校验
- 抽象类与接口
- 运行Liferay报错:Please set the environment variable ANT_OPTS to the recommended value of
- 大型分布式网站--读书笔记(一)
- JS-复选框的全选与全不选
- PgSQL · 最佳实践 · 从 MaxCompute (ODPS) 迁移数据到 HybridDB
- windows下tomcat配置环境变量相关注意事项
- Scikit-learn使用总结
- Android SurfaceFlinger 学习之路(七)----创建图形缓冲区GraphicBuffer
- 类和对象——四个默认成员函数+运算符重载
- 史上最全SSM框架整合(一)-----SSM整合思想
- 使用 Webix 创建 Email 客户端