本文背景简述:
最近在学习公司的一套RPC框架,初步接触的时候感觉挺复杂的。但是知道其原理肯定是和dubbo很相似的,毕竟都是RPC框架嘛,只是各自使用的范围和使
用者群体有些不同罢了。于是就去dubbo官网熟悉了其相关文档和案例教程,然后结合网上大佬的一些资料,自己搭了个简单的分布式远程调用案例。这里
强调一个东西--记住官方文档第一!!!下面分享一下我的案例代码吧,也希望本案例能对在读的读者启动一点帮助......
先来一张简单的架构图吧,这个图是自己使用processOn画的(这里推荐一波processOn线上作图神器):
转存失败重新上传取消
1、创建一个比较原生的Maven项目dubbo-common
这个项目中只定义公共接口和实体,以供后面的provider工程项目和consumer工程项目使用(如下图所示):
TeamService中的代码也很简单,如下:
package com.chandler.dubbo.service;
import com.chandler.dubbo.entity.Team;
public interface TeamService {
Team getTeamInfo(String city);
}
2、下载与配置zookeeper
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ ,至于怎么配置和使用,可以自己移驾度娘,上面很多,其实也比较简单。
3、创建dubbo-provider项目
首先从下图所示这里创建一个springboot项目:
创建后的工程大概如下图所示,这个provider项目很简单,就是一个实现了dubbo-common项目中的那个接口的service方法。
项目创建完了后我们首先要把dubbo-common中的那个划红线的jar包手动添加到lib库中,以备后面使用(正常来说我们肯定是将类似于dubbo-common这样一个公共工程上传到Maven公共镜像仓库或者是公司内部的是有个Maven镜像仓库中去,以备提服务的项目和消费服务的项目通过pom文件直接添加依赖就可以使用。这里我们为了简单演示就直接手动添加算了)。手动添加步骤如下:
File-->Project Structure-->Modules-->Dependencies-->右侧+号找到那个jar包-->点击底部apply-->点击ok
pom文件内容:
<?xml version="1.0" encoding=