一、项目架构图
说明:微服务架构一般根据实际业务情况划分颗粒度,前期规划尽量划分的粗一点,数据库网上大部分的建议都是一个微服务对应单独的一个数据库,其实在前期可以放在一起,并不是数据库不分离就不是微服务架构了。
二、版本选择
springboot: 2.1.4.RELEASE
spring cloud: Greenwich.SR3
spring cloud alibaba: 2.1.1.RELEASE
三、核心项目分解
(一)网关
网关主要职责是做路由以及权限过滤处理。
pom文件配置:
yml配置:
api主启动类:
ribbon整合sentinel配置(这块没有配置限流,只是配置了降级)
全局异常处理:
网关核心过滤器:
(二)共用模块(zyb-common)
pom核心依赖:
application.properties配置文件:
启动类:
(三)系统后台(system)
Oauth2协议整合
pom.xml:
application.properties:
Oauth2整体内容概览:
Oauth2jdbc支持的表结构:
drop table if exists oauth_client_details;
create table oauth_client_details
(
client_id varchar(48) not null comment '账号ID',
resource_ids VARCHAR(256) default 'oauth2-resource' comment '资源ID',
client_secret VARCHAR(256) comment '秘钥',
scope VARCHAR(256) comment '访问范围',
authorized_grant_types VARCHAR(256) comment '接口授权',
authorities VARCHAR(256) default 'ROLE_CLIENT,ROLE_USER' comment '角色',
access_token_validity INT(11) default 2147483647 comment '访问接口有效时间',
refresh_token_validity INT(11) default 2147483647 comment '刷新接口有效时间',
web_server_redirect_uri VARCHAR(256) comment '第三方跳转地址',
additional_information VARCHAR(4096) comment '其它信息',
autoapprove VARCHAR(256) comment '自动审批',
primary key (client_id)
);
alter table oauth_client_details comment 'Oauth客户端';
以上为真实项目抽取的核心架构内容,各位小伙伴们有什么意见可以给我评论哦。