本文参考以下文章,搭建了一个分布式的demo,加强对分布式以及RPC的理解。
超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务
总结为以下几点:
- RPC是位于不同服务器的服务,之间的相互调用。
- Dubbo是实现分布式服务的工具,用于提供不同的服务,如消费者服务,提供者服务。Zookeeper是分布式服务的管理中心,提供者在此处注册服务,消费者在此处订阅服务。消费者要调用提供者的方法,用于自己使用。
项目架构为:
- 云服务器上安装zookeeper,并开启相应的服务,在2181端口,如开启失败,需要关闭tomcat。
- 接口module定义一个接口,生成jar包(用于被provider和consumer导入pom),用于被提供者实现
- provider导入pom(interface,dubbo,zookeeper),实现接口方法。在配置文件中配置注册中心地址和本机服务端口:8333
- consumer导入和provider相同的pom,注入接口,controller中的方法借由interface包中定义的接口,实际调用是provider实现的接口方法,就完成了远程调用。配置文件配置订阅中心地址(zookeeper所在云主机地址:端口号)以及本机服务启动端口:8330
- 最后同时启动,provider,consumer。即验证分布式服务的实现。zookeeper只是充当一个服务注册与订阅的中心。