java rpc dubbo_Java 使用 dubbo rpc 结构分层的问题

项目结构如下:

web 项目名

-- server sercice 层

-- web controller 层

transfer_server

-- transferCore dao 接口

-- transferServer

transfer_api POJO 类,工具类

web 作为 consumer,transfer_server 作为 provider,用 dubbo 做服务注册发现,多个 web 项目调用 transfer_server

transfer_server 项目中 dubbo-provider.xml 中只暴露一个接口,配置如下:

ref="transferInvoker" owner="owner1" version="${dubbo.service.versions}"

delay="${dubbo.service.delay}" timeout="${dubbo.service.delay}"

retries="${dubbo.retries}"/>

web 项目中 dubbo-consumer.xml 配置如下

interface="com.iyunche.transfer.api.server.TransferInvoker" version="${dubbo.service.versions}"

timeout="${dubbo.service.delay}" />

分割线

1、问题一:在 dubbo 配置文件中只暴露一个接口有什么优缺点?

web 项目中接口调用方式如下:

transferInvoker.invokeObject("logisticsOrderService#getLogisticsOrderById", logisticsId);

transfer_server 通过反射找到接口和实现类

目前我知道的好处是不用每次都配置 dubbo 配置文件,但是在 dubbo 监控中心里监控接口调用次数等功能全部失效。

2、问题二:项目分层问题

目前项目中 controller 层和 service 层在同一个项目,在 service 层做业务逻辑,然后通过 dubbo 调用 transfer_server,transfer_server 中直接调用 dao 层。

依我的看法是项目中 controller 层封装完数据之后,通过 dubbo 调用 transfer_server,在 transfer_server 中处理业务逻辑,复用 transfer_server 中的方法

组长说在项目中 controller 层封装数据,service 层处理业务逻辑,之后通过 dubbo 调用 transfer_server,会在 transfer_server 中写通用的业务逻辑,达到复用的目的,然后调用 dao 层

但是我看来目前 transfer_server 什么都没做,直接调用 dao 层,transfer_server 中方法的复用其实就是 dao 层接口的复用,transfer_server 相当于鸡肋,方法复用性很小

求大家指教,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值