配置好输入http://localhost:8085/test/test显示页面
根据url我们发现调用了consumer包下TestController类里的方法
但是这个接口在service包下
根据pom文件可知 consumer和provider都注入了service依赖
所以该项目架构如图
而连接数据库在provider
项目启动了两个独立Java程序,consumer只能看到service的接口,为什么consumer能访问到provider的方法?
TestController中的testService.index是一个普通方法需要在对象上调用这个对象那来的?
根据分析:consumer端通过代理生成了一个新的代理类对象(dubbo框架帮我们实现代理),新的代理类对象对这个方法发起了网络请求并且接收了请求响应,将响应封装到对象中。
发起网络请求需要ip地址
根据配置文件
consumer和provider都向zookeeper进行注册
而且我们开始也启动了一个zookeeper,所以zookeeper起到了一个公告板的作用,记录consumer和provider的信息,它可以帮助consumer拿到provider的地址