由于公司使用的是springboot+dubbo的分布式架构,虽然个人更偏向于springcloud,但是日常中使用dubbo更多,所以也参考了很多的资料,自己搭建了一个基于目前最新版本的RPC服务demo。(springboot 2.0.5+dubbo2.6.3+zookeeper3.4.10)用来熟悉dubbo和学习相关技术,把搭建过程记录下来,防止自己和他人踩坑。
下图是dubbo官网给的图。在系统越来越庞大的情况下,分布式就显得尤为重要了,应用之间交互是不可避免的,将核心业务抽取出来,作为独立的服务,然后逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
在项目搭建之前首先需要一个注册中心,dubbo推荐使用zookeeper,所以我这里使用的也是zookeeper,下载地址:http://zookeeper.apache.org/。下载完成后解压就行。不会的参考:http://dubbo.apache.org/zh-cn/docs/admin/install/zookeeper.html
首先使用idea创建一个空的springboot项目用来做多模块的父工程:spring-boot-dubbo-parent。这里要注意把打包方式改为pom类型。代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wangzc</groupId>
<artifactId>spring-boot-dubbo-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>spring-boot-dubbo-parent</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>