dubbo注意的问题,接口中的bo应该实现序列化,否则服务注册失败

dubbo注意的问题,接口中的bo应该实现序列化,否则服务注册失败

 

 

用注解的服务注入1,用dubbo的@services,2,服务的引用用dubbo的@Refrence

 

 

 

 

1,在不使用dubbo注解的时候,service可以注入给消费端任何在spring容器管理的类

 

 

2,使用duboo注解的时候,除了配置spring的扫路径,还需配置dubbo的扫描路径

<!--dubbo相关配置  -->消费方,服务方都需要

<dubbo:annotation package="com.houbank" />

<!-- dubbo reference 注解 并非给 spring 管理,dubbo 通过扫描  将 其 反身赋值,故  dubbo扫描需要在  controller(初始化完成)之前,这也

   涉及到  该注解 在 controller中  是 获取 dispatcher context空器中的 对象,而非  父容器  context  容器,故  BeanUtils  也是无法直接获取值的。-->

<dubbo:annotation package="com.houbank.incoming.web.controller, com.houbank.incoming.web.util" />

<!-- dubbo 扫描和spring扫描开启 -->

<!--<context:component-scan base-package="com.houbank.incoming.web.controller" />  -->

<context:component-scan base-package="com.houbank" />

 

   服务注册:

@Service  ——》com.alibaba.dubbo.config.annotation

 

 

   消费方:

 

 

@Reference  ——》com.alibaba.dubbo.config.annotation

 

 

 

如果是简单的使用这种注入的方式只能注入到controller   ,需要注入给@Component或消费端任意spring容器管理的类,需要用配置文件的方式加强

 

 

消费端:

 <!-- 这里需要显式配置,否则 通过BeanUtil的方式无法获取到bean,解决velocity自定义模板注入问题 -->  

    <dubbo:reference id="cacheFacade" interface=" com.houbank.incoming.api.CacheFacade" check="false"/> 

    <dubbo:reference id="codeLibraryFacade" interface=" com.houbank.incoming.api.CodeLibraryFacade" check="false"/>

    <dubbo:reference id="weixinBaseInfoFacade" interface=" com.houbank.incoming.api.WeixinBaseInfoFacade" check="false"/>

    <dubbo:reference id="financialSalesRoleFacade" interface=" com.houbank.incoming.api.FinancialSalesRoleFacade" check="false"/>

    <dubbo:reference id="financialSalesEmploymentFacade" interface="com.houbank.incoming.api.FinancialSalesEmploymentFacade" check="false" />

    <dubbo:reference id="financialSalesTeamFacade" interface="com.houbank.incoming.api.FinancialSalesTeamFacade" check="false" />

    <dubbo:reference id="financialSalesCustomersFacade" interface="com.houbank.incoming.api.FinancialSalesCustomersFacade" check="false" />

    <dubbo:reference id="financialSalesStatisticsFacade" interface="com.houbank.incoming.api.FinancialSalesStatisticsFacade" check="false" />

    <dubbo:reference id="financialSalesFuncFacade" interface=" com.houbank.incoming.api.FinancialSalesFuncFacade" check="false"/>

    <dubbo:reference id="financialSalesUserFacade" interface=" com.houbank.incoming.api.FinancialSalesUserFacade" check="false"/>

 

  @Reference

    private FinancialSalesFuncFacade financialSalesFuncFacade;

 

 

  public FinancialSalesFuncFacade getFinancialSalesFuncFacade() {

        return financialSalesFuncFacade;

    }

 

    public void setFinancialSalesFuncFacade(FinancialSalesFuncFacade financialSalesFuncFacade) {

        this.financialSalesFuncFacade = financialSalesFuncFacade;

    }

 

 

 

 

 

 

 

 

 

 

dubbo在调试的时候有多个服务提供方,由指定的消费进去后,会随机一个服务方,后面服务方返回的也是到这个消费方,可以通过服务版本的方式控制乱跳

 

即:

消费方,服务方在第一次启动的时候就向注册中心获取服务,或者消费者列表(定时同步)

 

后续消费方根据自己内存的服务路由选择服务方,服务方根据request packget中带来的请求方的ip,端口返回给之前请求的消费端

 

 

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2404523