zoukankan      html  css  js  c++  java
  • dubbo hessian+dubbo协议

    Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况

    Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务。适用场景:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。因此比较高效的做法是带上传下载文件的服务使用hessian协议,去普通的服务使用dubbo协议。

    做法如下

    1、搭建zookeeper(略)

    2、搭建dubbo-admin(略)

    以上两步请参考官方文档,非常详细

    3、生产者工程的spring配置

       <dubbo:application name="testinfo" />
       <dubbo:registry address="zookeeper://192.168.0.228:2181" />
       <dubbo:protocol name="dubbo" port="20880" /> 
       <dubbo:protocol name="hessian" port="8080"  contextpath="testinfo" server="servlet" />
       <dubbo:provider protocol="hessian" />
       <dubbo:service interface="com.yhi.hiwl.api.baseinfo.UploadService" ref="uploadService" protocol="hessian"/>
       <dubbo:service interface="com.yhi.hiwl.api.baseinfo.LoginService" ref="loginService" protocol="dubbo"/>

    3、生产者工程的web.xml配置

    <servlet>  
            <servlet-name>dubbo</servlet-name>  
            <servlet-class>com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>  
            <load-on-startup>1</load-on-startup>  
        </servlet>  
        <servlet-mapping>  
            <servlet-name>dubbo</servlet-name>  
            <url-pattern>/*</url-pattern>  
        </servlet-mapping> 

    4、消费者工程spring配置

    <dubbo:reference id="uploadService"  interface="com.yhi.hiwl.api.baseinfo.UploadService" timeout="4000"/> 

    <dubbo:reference id="loginService"  interface="com.yhi.hiwl.api.baseinfo.LoginService" timeout="4000"/> 

    这样uploadService里抛出的服务就会以hessian方式用http抛出,可以传输大文件,而loginService服务就使用dubbo协议能够高效的传输json、html等等

  • 相关阅读:
    Struts2【UI标签、数据回显、资源国际化】
    Struts2【配置】知识要点
    Struts2与Spring整合
    Struts2入门这一篇就够了
    Hibernate最全面试题
    Hibernate【查询、连接池、逆向工程】
    Hibernate【缓存】知识要点
    Hibernate【inverse和cascade属性】知识要点
    输入法设置,SublimeTest,putty掉线
    Hibernate【映射】知识要点
  • 原文地址:https://www.cnblogs.com/jtlgb/p/8602830.html
Copyright © 2011-2022 走看看