@Reference和@Autowired的场景区别

网上有看到对@Reference和@Autowired的解释;
前者是dubbo中远程服务的调用,后者是springboot提供的本地spring容器的bean调用;

但是我的疑问是: 我在这个dubbo项目里,每次在service实现类里或者controller控制类里,都是用@Autowired调用另一个service类;
没有用过@Reference. 我的疑问是,服务不就是service写好,用注解和配置文件里注册到注册中心吗.
那服务都在一个项目里,只不过分不同的模块. 那service之间调用,不都算是本地的吗,何必去注册中心找服务调呢.大家都在本地可以用@Autowired找到的.

可能我没有部署上线过项目,只发给测试人员测试通过就ok了, 对后面的流程不了解. 谁能解答下吗?

springcloud是将http接口放到不同的模块里,再部署到不同的服务器,以分散服务器压力。
dubbo更类似于rpc,是方法层面的划分,将方法单独拆开部署到不同服务器上,也是为了分散服务器压力。

微服务可不是这样的 比如你有一个用户模块 一个商品模块 这两个肯定是要分别部署的,在不同的服务器上
这个时候商品模块里要调用用户模块的一个方法怎么办? 不能Autowired了吧
这个时候就只能用Reference这种rpc调用了

看下我的这篇博客

img

springcloud 都知道,dubbo不知道;看看这两有啥相同和有啥区别