• 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等等

  • 相关阅读:
    SpringBoot之Banner介绍
    SpringBoot事件监听机制
    SpringBoot 启动流程图
    ApplicationContextInitializer的理解和使用
    SpringFactoriesLoader解析
    计时器之StopWatch
    ftp上下载文件
    打印两个函数的返回值
    关闭所有已打开的文件和关闭应用
    TypeError: include() got an unexpected keyword argument 'app_name'
  • 原文地址:https://www.cnblogs.com/jtlgb/p/8602830.html
Copyright © 2020-2023  润新知