zoukankan      html  css  js  c++  java
  • 不同项目数据交互

    一、境遇

      不同web项目之间需要交互些数据。当然WebService是项目本来就提供了的接口。很多客户对它很介意。

    解决方案1、

      相同架构情况下,直接把项目重构再一起。

      优点:无。缺点一堆,还不如使用webservice。 

    解决方案2、

      使用远程调用通讯的一些开源框架帮忙

      eg:RMI /Httpinvoker/Hessian /Burlap/WebService 等等...

      优点:如RMI,Httpinvoker,Hessian传输速度都很快。

    二、远程调用解决方案

    RMI

      Remote Method Invocation为Java非常重要的底层技术,传输稳定高效。有一些开源的远程调用组件以rmi为底层可以选择。但是仅仅支持Java,有一些局限。

    Httpinvoker:

      这是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。

    Hessian

      hessian支持跨语言,采用的是二进制RPC协议,基于HTTP传输,服务端不用开防火墙端口。传输速度速度也不错,对象过于复杂会影响速度

    效率区别   

      RMI > Httpinvoker >= Hessian >> Burlap >> web service

    最终决定采用Hessian来解决远程交互。

    三、使用Hessian构建系统之间的桥梁

    系统B、系统C 获取系统A数据。

    1、系统A开发对外传输数据的接口。

    2、开发适配系统A对外接口的hession客户端接口组件(包含对象、接口方法)。

    3、系统B/C等其他系统依赖该组件,就可以直接调用该组件的方法获取数据

    4、配置A系统与组件的连接设置。

    适用于 A系统为主数据中心,其他周边系统多为依赖的情况。

    四、关于Hessian的使用....

     

    当然,这种方式只适合简单的提供远程服务,如果企业应用到了一定规模,采用面向服务的分布式架构是必不可少的。那么Zookeeper+Dubbo是比较适合的方式。

  • 相关阅读:
    linux系统常用命令
    python文件处理
    Python按行读文件
    向脚本传递参数-shift命令
    shell脚本中一些特殊符号
    标准make变量 MAKE_VERSION, CURDIR
    makefile "=" ":=" "?=" "+="
    静态资源映射
    Spring MVC的常用注解
    SpringMVC项目的快速搭建
  • 原文地址:https://www.cnblogs.com/javaMan/p/4854070.html
Copyright © 2011-2022 走看看