介绍:之前的博文里有写到一章springboot+dubbo项目,这篇文章是在之前文章基础上新加了一下功能,这篇文章就不详细写出来了,直接项目共享出来,大家感兴趣可以下载看看

一、项目结构

hucheng-springboot-dubbo    (项目根目录)
    |__doc    (数据库sql和定时器控制台项目源码包)
    |__dubbo-admin-master    (dubbo控制台源码)
    |__dubbo-api    (项目API文档及调用,第三方的)
    |__dubbo-common    (项目公用类,工具类)
    |__dubbo-job    (定时器项目,第三方的)
    |__dubbo-rest    (项目请求入口,消费者)
    |__dubbo-seckill-service    (生产者,秒杀服务)
    |__dubbo-sentinel-dashboard    (限流控制台)
    |__dubbo-user-service    (生产者,用户服务)


二、项目运行前准备
需要安装
1.zookeeper
2.mysql
3.rabbitmq
4.redis

三、项目数据库
安装好mysql数据库直接执行doc下的sql文件即可
1.项目数据库

dubbo

2.定时器数据库

xxl_job

3.api文档数据库

apidev


四、项目启动顺序
1.代码下载下来先编译

mvn clean install

2.启动项目前确保所有数据库运行

zookeeper,mysql,redis,rabbitmq

3.项目启动顺序
dubbo-user-service–》dubbo-seckill-service–》dubbo-rest–》dubbo-api–》dubbo-job–》dubbo-sentinel-dashboard


dubbo-api是用tomcat启动
其他的项目都是springboot

dubbo-sentinel-dashboard已经实现了限流规则持久,将规则配置持久到zookeeper中
服务重启之后限流规则配置也不会丢失
热点限流规则还没有持久到zookeeper中,有空会研究下

4.如果要看dubbo注册中心监控控制台

修改dubbo-admin-master下dubbo-admin项目下的application.properties文件dubbo.registry.address=zookeeper://127.0.0.1:2181 ##注册中心地址

5.项目下所有的mysql,redis,rabbitmq地址都是本地127.0.0.1,如果是要连接服务器上的,直接修改所有项目下的application-local.yml或application.yml配置即可

五、项目请求入口
1.项目请求案例

请求地址
http://localhost:9090/rest/

post 请求
header头部信息
 Content-Type:application/json
 action:user_login
 accessId:94d6dd22afd7450ab711f66508617e67
 format:json
 userId:0body请求内容
 {
 “reqObject”:{
 “username”:“admin”,
 “password”:“12345678”
 }
 }
2.请求情况

API不需要登录的情况,需要带上系统默认的accessId (获取系统默认accessId接口 user_defaultAccessId)
API需要登录的情况,需要带上用户登录系统返回的accessId以及用户ID

3.图解

sentinel对dubbo限流原理 dubbo接口限流_API


sentinel对dubbo限流原理 dubbo接口限流_springboot_02

4.密码没有处理,项目只是完成简单的功能

六、新增API
1.新增API文件类

com.hucheng.rest.web 包下
类方法案例:TestAction、testV100(类名已Action结尾、方法名已V100结尾)

2.新增api配置

编辑resources下的api.properties
新增一个test_test即可


七、service层

service是dubbo生产者
api是接口
provider是具体实现

新增生产者服务在service实现类上加上注解
@Component
@Service(interfaceClass = GoodsService.class, retries = -1, timeout = 5000)

interfaceClass 注册生产者服务
retries 失败超时是否重试 -1是不重试
timeout 超时时间


八、源码下载



九、项目账号密码
1.定时器项目账号密码

admin 123456

2.dubbo控制台账号密码

sentinel sentinel

3.API文档账号密码

admin 123456

4.dubbo监控平台

root root


十、项目截图

定时器

定时器项目其实就是发送http请求到dubbo-rest项目接口

sentinel对dubbo限流原理 dubbo接口限流_API_03


sentinel对dubbo限流原理 dubbo接口限流_springboot_04


sentinel对dubbo限流原理 dubbo接口限流_sentinel对dubbo限流原理_05

API文档

sentinel对dubbo限流原理 dubbo接口限流_springboot_06


sentinel对dubbo限流原理 dubbo接口限流_springboot_07


sentinel对dubbo限流原理 dubbo接口限流_springboot_08


sentinel对dubbo限流原理 dubbo接口限流_api文档_09


sentinel对dubbo限流原理 dubbo接口限流_API_10


sentinel控制台

sentinel对dubbo限流原理 dubbo接口限流_dubbo_11


sentinel对dubbo限流原理 dubbo接口限流_dubbo_12


dubbo监控

sentinel对dubbo限流原理 dubbo接口限流_api文档_13


sentinel对dubbo限流原理 dubbo接口限流_API_14


sentinel对dubbo限流原理 dubbo接口限流_api文档_15


sentinel对dubbo限流原理 dubbo接口限流_API_16