Dubbo 的话,不同模块之间需要调用不同的服务。像 Web 端、电脑 PC 端、手机微信端等,不管用户用什么端,调用的都是同一个接口。
我做的这块微信下单系统中,用户要调用一个加入购物车的操作,无论用户用的什么端,最后落实到的都是同一个数据库,不可能每个端是不同的数据库。然后数据库一样的话,那么接口就可以写成通用的。但通用接口是在别的系统中,如果我们要调用这个接口的话,涉及到跨系统的调用,所以只能通过 RPC 调用,而不能说通过导包来调用。因为不同两个包 API 是加载不进来的,所以只能通过 RPC 来调用。这里就用了 Dubbo 的注册服务和消费服务的功能。(通用接口写在 common-service 中,作为服务提供者,然后其他系统调用就是作为消费者,这里就用了 Dubbo 来实现)