关于ASC的说明
2020-12-25 本文已影响0人
昵称被占用最扎心
基于springcloud alibaba 做了一个简单的开发框架,用于以后复用,简单介绍一下:
介绍
基于SpringCloudAlibaba实现的微服务架构,作为其他项目的后端快速开发框架。
软件架构
Spring Cloud Alibaba Version:2.2.3.RELEASE
Sentinel Version:1.8.0
Nacos Version:1.3.3
RocketMQ Version:4.4.0
Dubbo Version:2.7.8
Seata Version:1.3.0
1.gateway 实现负载均衡和统一鉴权拦截
- 应用层模块负责与前端交互,提供统一的restFul接口,模块统一命名application-xxx。
knife4j 生成接口文档
多应用层、应用负载均衡通过redis实现session共享。
- 服务层模块分为两部分,一部分定义接口(service-xxx-api),另一部分实现服务(service-xxx-server)。
接口可打包jar用于其他项目引用,服务实现部署在开发、测试、生产环境用于提供服务。
应用层与服务层,服务层之间的交互统一使用dubbo协议,故所有的应用与服务应部署于统一私网网络环境或容器环境,如k8s、docker等
-
数据库dao层封装于服务实现中,对外统一提供DTO和接口方法。
-
终端实现layui-admin,因版权问题,不开放源代码,将来会用vue重构一套前端代码并开放给大家。
编译方式
1、通过最顶层父项目编译,效果如下:
[INFO] Reactor Summary:
[INFO]
[INFO] framework .......................................... SUCCESS [ 0.003 s]
[INFO] common ............................................. SUCCESS [ 0.949 s]
[INFO] service-user ....................................... SUCCESS [ 0.001 s]
[INFO] service-user-api ................................... SUCCESS [ 0.073 s]
[INFO] service-user-server ................................ SUCCESS [ 1.114 s]
[INFO] application-admin .................................. SUCCESS [ 2.034 s]
[INFO] auth-business ...................................... FAILURE [ 0.217 s]
计划实现的组件
√ nacos 服务注册与发现、分布式配置管理
√ dubbo 内部交互协议
@todo Sentinel 流量控制、熔断降级、系统负载保护等
@todo RocketMQ 。。。。
@todo Seata 事务
@todo 链路跟踪
@todo ELK日志收集中心
redis 数据字典和共享缓存配置
功能列表
- 实现基于角色的用户权限管理及相关功能RBAC
- 实现基于部门树和角色的数据权限管理
- 实现配置字典功能
- 实现基于auth2.0的鉴权
- 实现统一网关管理
开发环境搭建
idea 2020.3 java开发工具
RMD redis可视化工具
navicate mysql数据库工具
jemeter 测试dubbo接口,需要安装插件
测试
测试账户
{
"grant_type": "password",
"client_id": "client-app",
"client_secret": "sun.chen",
"username":"admin",
"password":"123456"
}
1、dubbo服务测试
安装JMeter https://jmeter.apache.org/download_jmeter.cgi
安装
- 下载jmeter-plugins-dubbo拓展插件 https://github.com/thubbo/jmeter-plugins-for-apache-dubbo
- 将下载的jar包放到
{JMeter目录}/bin/jmeter.sh
安装教程
生成证书
keytool -genkey -alias jwt -keyalg RSA -keystore jwt.jks
- 安装nacos1.4.0
- 自动部署脚本