SpringCloud + Spring Cloud Alibaba实战

一、项目架构图

说明:微服务架构一般根据实际业务情况划分颗粒度,前期规划尽量划分的粗一点,数据库网上大部分的建议都是一个微服务对应单独的一个数据库,其实在前期可以放在一起,并不是数据库不分离就不是微服务架构了。

二、版本选择

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整体内容概览:

授权认证服务器-passwordEncoder


授权认证服务器其它配置
资源认证服务器
密码模式登入

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客户端';

以上为真实项目抽取的核心架构内容,各位小伙伴们有什么意见可以给我评论哦。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。