EJB、RMI、XMLRPC、Hessian、Thrift 、Protobuf
2016-04-12 22:59
399 查看
Java中实现分布式的方式有:EJB、RMI、XMLRPC、Web Service、Hessian、Thrift 、Protobuf、NIO(Netty、Mina)
劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。
劣势:不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式事务JTA,RMI框架对于安全性、事务、可扩展性的支持非常有限。
劣势:性能相对差,不支持两阶段事务
劣势:安全性的支持不够强,不支持两阶段事务。
缺点:不能跨语言,无法穿透防火墙。
ICE的功能更完备,如果说Thrift是网络框架,那么ICE就是解决方案。
EJB
优势:可扩展性好,安全性强,支持分布式事务处理。劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。
RMI
优势:面向对象的远程服务模型;基于TCP协议上的服务,执行速度快。劣势:不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式事务JTA,RMI框架对于安全性、事务、可扩展性的支持非常有限。
Web Service
优势:跨语言、跨平台,SOA思想的实现;安全性高;可以用来兼容legacy系统的功能劣势:性能相对差,不支持两阶段事务
Hessian
优势:使用简单,速度快;跨语言,跨平台;可以用来兼容legacy系统的功能。劣势:安全性的支持不够强,不支持两阶段事务。
NIO(Mina/Netty)
优点:基于TCP通信,效率上高于HTTP的方式,非阻塞IO应对高并发绰绰有余。根据具体的需要制定数据传输的格式,可扩展性强。缺点:不能跨语言,无法穿透防火墙。
Protobuf
单纯的序列化反序列化库;ICE和Thrift
不仅包括序列化反序列化功能,还是RPC框架ICE的功能更完备,如果说Thrift是网络框架,那么ICE就是解决方案。
相关文章推荐
- json-c代码示例
- 操作系统面试题总结
- struts2标签在jsp不显示问题(不经过action跳转)
- C语言中未初始化变量的值
- mysql 数据库字段与关键字冲突,报语法错误
- Codeforces Round #306 (Div. 2) B.Preparing Olympiad (位运算)
- 编写一个程序,这个程序把一个整数数组中的每个元素用逗号连接成一个字符串,例如,根 据内容为[1][2][3]的数组形成内容为"1,2,3"的字符串。
- 编写 三个类 ticket,sealWindow,ticketSealCenter,代表票信息,售票窗口,售票中心, 售票中心分配一定数量的票(多个窗口实现多线程售票)
- 理解 Linux 网络栈(1):Linux 网络协议栈简单总结
- Android自动化测试之Monkeyrunner使用方法及实例
- 【每周一文】Field-aware Factorization Machine(2014)
- android去除标题栏
- POJ-1256 next_permutation函数应用
- Android Studio导入第三方jar包
- 策略模式的孪生兄弟——对状态模式的深度复习总结
- oracle压缩表空间
- CSUST 第九届校赛H-最小差值
- 京东2016实习题目-选举游戏-小东和其他小朋友正在玩一个关于选举的游戏。选举是通过投票的方式进行的,得票最多的人将获胜。
- vs2010 出错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- web servers