在之前的博客中,已经陆续给出最基本的dubbo生产消费,以及rest内嵌dubbo服务配置与发布,本篇用另一种更为通用的模型来给出第二种耦合度更低,服务分离更为彻底的工程,来实现基本功能。首先给出整个工程的结构:
与上次的工程相比,只是多了一个dubboApi,但就是这个工程,托管了provider,consumer以及rest所有涉及到的接口,使得各种生产,消费只与这一个模块进行交互,结构上更为清晰,方便管理。pom的结构为dubboApi,dubboConsumer,dubboProvider与dubboRest都为父pom的model,之前发布服务所需要的各种接口全部在api中定义,所以实现的接口以及provider.xml所定义的接口都为api中的接口。与之前的发布的dubbo+rest服务不同的是,之前rest模块依赖在provider上,启动rest模块时,两者的服务一同注册在zookeeper中;而这里需要先将provider的服务注册,而后才能启动rest,此时的rest是作为一个消费者将provider的服务消费掉:
所以此时的dubboRest中需要配置Consumer.xml。
另一点不同的是,此时的dubboRest与dubboProvider并不是绑定在一起发布服务的,所以application-name不必一致,但端口号还是需要不同: