介绍:之前的博文里有写到一章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:0
body请求内容
{
“reqObject”:{
“username”:“admin”,
“password”:“12345678”
}
}
2.请求情况
API不需要登录的情况,需要带上系统默认的accessId (获取系统默认accessId接口 user_defaultAccessId)
API需要登录的情况,需要带上用户登录系统返回的accessId以及用户ID
3.图解
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 超时时间
八、源码下载
https://download.csdn.net/download/qq_21082615/11286301
九、项目账号密码
1.定时器项目账号密码
admin 123456
2.dubbo控制台账号密码
sentinel sentinel
3.API文档账号密码
admin 123456
4.dubbo监控平台
root root
十、项目截图
定时器
定时器项目其实就是发送http请求到dubbo-rest项目接口
API文档
sentinel控制台
dubbo监控