首页 > 关于dubbo的一些问题,请教各位

关于dubbo的一些问题,请教各位

1、我的dubbo环境如下:
分为3个web工程:

1)工程1:名为provider-api-impl     --提供者服务的实现类
2)工程2:名为provider-api          --提供者api
3)工程3:名为consumer              --消费者

工程1打包成jar,放入工程2 buildpath。
工程2打包成jar放入consumer,同时放入工程1提供者实现类工程。
此时3个工程加载都没问题,也能互相调通。
现在问题如下:

1)发现提供者服务实现类Mybatis bean、Spring bean均没初始化,bean获取不到,调试了很久发现,貌似提供者api调的实现类是实现类工程jar包,根本没去实际的实现类工程中调用。所以mybatis bean没初始化是对的?
2)如果是这样的话,那实现类工程根本没必要拆分出来,直接和api工程放一块即可,显然违背了分布式理念?

我想问下,我以上做法是否有问题?谢谢!


实现好像有些问题,应该是api和bean抽出来共用,server实现api,customer消费调用api。 api并不要去引用server


说到有没有必要拆分出来,你知道我们项目的架构拆分出来,是为了上层的模块可以复用底层的服务。即现在架构设计中,模块的SOA化,把底层的服务接口和服务实现类单独部署起来,对外提供服务,可以被多个消费者来消费的。如果一个消费者就要绑定一个服务的提供者,你试想,如果我的服务提供者有修改,在部署的时候,是不是要将所有使用了该服务的消费者项目都要重新部署一遍的啊。这样、对开发是不利的。
此外,dubbo所做的事情就是维护各个子系统暴露的接口和自动发现对应接口的远程地址从而实现分布式RPC服务管理。服务的连接是通过zookeeper的注册中心来动态绑定这些信息的。


工程2:名为provider-api 这个应该是作为一个公用的接口项目,被其他两个项目所引用,这才是dubbo的实现的目的;具体可以参考我发布的文章(现在还没审核通过,第一篇,审核中,写的比较细)

【热门文章】
【热门文章】