分布式系统
建立在网络上的软件系统,因为是软件特性,所以分布式系统具有高内聚和透明性.
分布式带来问题
分布式事务
一个操作,分成几个操作在不同服务上执行,要么都成功,要么都失败。
无状态服务
服务器不存储任何信息。一次请求包含此次请求的所有数据,或可在数据库中查询获得。
运维成本
多个节点服务,增加运维成本。
现有RPC实现方案
协议 | 描述 | 优点 | 缺点 |
---|---|---|---|
RMI | JAVA 远程方法调用、使用原生二进制方式进行序列化 | 简单、支持SDK | 仅支java,不支持负载均衡 |
http | 采用http +json 实现 | 简单、轻量、跨语言 | 不支持SDK |
hessian | 采用http +hessian序列化实现 | 简单、轻量、支持SDK | 仅支持java |
Web Service | 跨语言, 其基于WSDL 生成 SOAP 进行消息的传递 | 支持SDK、跨语言 | 实现较重,发布繁琐 |
Java RMI,即 远程方法调用(Remote Method Invocation),一种远程过程调用(RPC)(Remote procedure call)的实现方式, 能直接传输序列化后的Java对象和分布式垃圾收集。它的实现依赖于JVM,因此它仅支持从一个JVM到另一个JVM的调用。