我们的程序不是spring开发的,所以用了dubbo的api模式,把微服务应用中几个需要互相调用提供服务的接口和实现类作为提供者注册到dubbo,同时在需要调用服务的微服务应用中作为消费者引用和调用,这能够正常工作,同时在dubbo-admin界面中也能够看到注册的服务提供者和消费者,以及服务调用的统计。
但是我有一个问题,我们部署了nginx用于应用转发,根据url中的服务名(即微服务应用的id)部分,转发到不同的微服务应用,微服务可能会部署多个实例,也用nginx实现负载均衡。加入dubbo后,只有少数几个需要暴露给其它服务调用的服务基于dubbo的服务治理来管理,其它从浏览器和app发起的请求,直接走nginx转发微服务了,根本不走dubbo,因为遵循高内聚低耦合原则拆分微服务且尽量规避跨服务事务,所以微服务间的rpc调用非常少,这种情况下dubbo只管理很少的rpc调用,分布式治理的意义在哪里呢(分布式治理应该是管理所有的分布式调用包括负载均衡吧?)?难道我应该把所有的服务都注册到dubbo,浏览器访问也访问dubbo吗? 或者我应该问,如何更合理地使用dubbo呢?
另外,基于srping开发的应用,是否是把所有controller都注册到dubbo呢?无论这个controller是否会被其它微服务调用?基于Spring开发的应用,浏览器访问也经过Dubbo吗?