新手都能看懂!手把手教你使用SpringBoot+Dubbo搭建一个简单的分布式服务。
此文使用springboot+dubbo+zookeeper+redis搭建一个简易的分布式服务。
环境准备
1、zookeeper环境安装;
2、redis环境安装;
3、mysql环境安装。
实现的业务功能
1、根据一定条件查询hero记录,并生成相应缓存;
2、查询记录数,进行缓存,并设置有效期;
3、新增hero记录,清空所有记录缓存,因为记录要求实时性;但不清空记录数缓存,这个不要求实时性。
代码实现
一、基础项目搭建
新建maven项目dubbo-interface。定义公共内容。
1、实体类:
package com.zomi.bean;
import java.io.Serializable;
import java.util.Date;
public class Hero implements Serializable{
private static final long serialVersionUID = 1L;
private int id ;
private String name ;
private String remark ;
private int level ;
private Date date ;
//省去getter、setter、toString
}
2、功能接口:
package com.zomi.service;
import java.util.List;
import com.zomi.bean.Hero;
public interface HeroService {
void addHero(Hero hero);
List<Hero> findHeros(int level);
int findHerosCount();
}
3、maven install 打包,供之后项目使用。
二、提供者
新建spring boot工程dubbo-provider
1、添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入公共接口项目 -->
<dependency>
<groupId>com.zomi</groupId>
<artifactId>dubbo-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 引入dubbo的依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- 引入zookeeper的依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!-- slf4j依赖 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
</dependency>
<!-- 添加redis-springboot整合依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 添加mybatis-springboot整合依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 添加mysql驱动依赖 -->
<dependency>
<groupId>mysql</