浅谈JAVA常用分布式实现方式及优缺点

转载 2015年12月14日 17:28:21
常用的有EJB、rmi、Web Service,还有Hessian、NIO等,它们的优缺点比较比下:



1:EJB
    优势:可扩展性好,安全性强,支持分布式事务处理。
    劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。

2:rmi
    优势:面向对象的远程服务模型;基于TCP协议上的服务,执行速度快。
    劣势:不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式事务JTA,RMI框架对于安全性、事务、可扩展性的支持非常有限。

3: Web Service
    优势:跨语言、跨平台,SOA思想的实现;安全性高;可以用来兼容legacy系统的功能
    劣势:性能相对差,不支持两阶段事务

4:Hessian
    优势:使用简单,速度快;跨语言,跨平台;可以用来兼容legacy系统的功能。
    劣势:安全性的支持不够强,不支持两阶段事务。

5:NIO(Mina/Netty)
    优点:基于TCP通信,效率上高于HTTP的方式,非阻塞IO应对高并发绰绰有余。根据具体的需要制定数据传输的格式,可扩展性强。
    缺点:不能跨语言,无法穿透防火墙。



Java NIO框架Mina、Netty、Grizzly
      Mina(Multipurpose Infrastructure for Network Applications) 是 Apache组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 Mina 版本2.04支持基于 JavaNIO 技术的 TCP/UDP 应用程序开发、串口通讯程序,Mina 所支持的功能也在进一步的扩展中。目前,正在使用Mina的应用包括:Apache Directory Project、AsyncWeb、AMQP(Advanced MessageQueuing Protocol)、RED5 Server(Macromedia? FlashMedia RTMP)、ObjectRADIUS、 Openfire等等。


     Netty是一款异步的事件驱动的网络应用框架和工具,用于快速开发可维护的高性能、高扩展性协议服务器和客户端。也就是说,Netty是一个NIO客户端/服务器框架,支持快速、简单地开发网络应用,如协议服务器和客户端。它极大简化了网络编程,如TCP和UDP套接字服务器。


     Grizzly是一种应用程序框架,专门解决编写成千上万用户访问服务器时候产生的各种问题。使用JAVANIO作为基础,并隐藏其编程的复杂性。容易使用的高性能的API。带来非阻塞socketd到协议处理层。利用高性能的缓冲和缓冲管理使用高性能的线程池。


    接下来就是区别啦~~~
    首先,从设计的理念上来看,Mina的设计理念是最为优雅的。当然,由于Netty的主导作者与Mina的主导作者是同一人,出自同一人之手的Netty在设计理念上与Mina基本上是一致的。而Grizzly在设计理念上就较差了点,几乎是JavaNIO的简单封装。   其次,从项目的出身来看,Mina出身于开源界的大牛Apache组织,Netty出身于商业开源大亨Jboss,而Grizzly则出身于土鳖Sun公司。从其出身可以看到其应用的广泛程序,到目前为止,我见到业界还是使用Mina多一些,而Netty也在慢慢的应用起来,而Grizzly则似乎只有Sun自已的项目使用。   最后,从入门的文档来说,由于Mina见世时间相对较长,官方以及民间的文档与入门示例都相当的多。Netty的官方文档也做得很好,而民间文档就要相对于Mina少一些了。至于Grizzly,不管是官方还是民间,都很少见到其文档。

Java分布式应用技术架构介绍

分布式架构的演进 系统架构演化历程-初始阶段架构 初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP 特征: 应用程序、数据库、文件等所有...
  • binyao02123202
  • binyao02123202
  • 2014年06月19日 20:30
  • 110195

java中的分布式应用(一)之分布式介绍

分布式概念 要理解分布式系统,主要需要明白一下2个方面: 1.分布式系统一定是由多个节点组成的系统。 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。 2.这些连通的节点上部署了...
  • zzjstudent
  • zzjstudent
  • 2016年08月23日 11:02
  • 24035

浅谈JAVA常用分布式实现方式及优缺点

1:EJB     优势:可扩展性好,安全性强,支持分布式事务处理。     劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。 2:rmi     优势:面向对象的远程...
  • wocalenimade
  • wocalenimade
  • 2017年01月24日 15:48
  • 507

Java分布式应用学习笔记06浅谈并发加锁机制分析

  • 2011年09月28日 17:25
  • 137KB
  • 下载

浅谈AJAX 技术与优缺点

  • 2011年02月19日 16:27
  • 4KB
  • 下载

浅谈java中nio的使用方式

  • 2017年08月03日 11:50
  • 36KB
  • 下载

使用JAVA实现几种常用的排序算法,浅谈算法。

小编在这篇博客中对JAVA程序员需要了解的排序算法做一个介绍并附带实现代码,希望可以对你们有所帮助,若有所不足请在下方继续评论,谢谢支持。 算法的分类  1.交换排序 (冒泡排序,快速排序)    2...
  • qq_36503722
  • qq_36503722
  • 2017年10月05日 14:48
  • 86

基于java的nio消息实现方式优缺点分析及示例代码说明

转:http://www.xwood.net/_site_domain_/_root/5870/5874/t_c255146.html java nio在jdk1.4版本中加入新io的功能,所有...
  • s296850101
  • s296850101
  • 2016年09月28日 17:35
  • 751

关于分布式程序 java的内存管理浅谈

关于分布式程序 java的内存管理浅谈,转述了一些之前看到的关于java memory的一些文章片段,列了几个在java memory管理上比较优秀的框架,大家可以参考一下。...
  • wzhg0508
  • wzhg0508
  • 2015年06月02日 14:40
  • 1242

浅谈Java分布式计算

如果所有组件都在同一台计算机的同一个Java虚拟机的同一个堆空间上执行是最简单的,但实际中我们面对的往往不是如此单一的情况,如果用户端只是个能够执行Java的装置怎么办?如果为了安全性的理由只能让服务...
  • tyut_ly
  • tyut_ly
  • 2015年06月27日 21:31
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈JAVA常用分布式实现方式及优缺点
举报原因:
原因补充:

(最多只允许输入30个字)