AG-Admin服务化平台

老干爹 7月前 ⋅ 8349 阅读
靠谱的基础设施(服务治理、服务运维) + 合理的服务划分(规范标准、中台服务、业务服务) + 持续的自动化运维(减少人肉运维)

靠谱的基础设施

Spring Cloud的相关模块

  • 注册中心:Eureka

Eureka

  • 服务调用:Feign+Ribbon(负载)

Ribbon

  • 网关:Zuul+Ribbon(负载)+限流

zuul

  • 链路追踪:zipkin + sleuth
  •  

image.png

  • 应用监控:boot admin

Spring Boot Admin

基础中间件

  • druid
  • mybatis、tkmapper、pagehelper
  • redis
  • rabbit mq
  • mysql

合理的服务划分

(1)接口交互标准

输入

URI

增加
|--- POST /product:新建一个商品
删除
|--- DELETE /product/ID:删除某个商品
更改
|--- PUT /product/ID:更新某个指定商品的信息
查询
|--- GET /product/ID:获取某个指定商品的信息
|--- GET /product:获取所有指定商品的信息
|--- GET /product/ID/purchase :列出某个指定商品的所有投资者
|--- GET /product/ID/purchase/ID:获取某个指定商品的指定投资者信息

简单查询

?limit=10:每页大小
?page=10:当前页数
?producy_type=1:指定筛选条件

输出

正常输出

普通对象
{
    status: "0",
    message: "success",
    data: {
        xxx: "xx",
        type: "xx"
    }
}
列表对象(标准)
{
    status: "0",
    message: "success",
    data: {
        rows:[],
        total: 1
    }
}

(2)安全规范

基础的交互流程

img被访问的服务,根据情况进行用户认证、服务认证。由RequestHeader中携带这两个key。

Authorization  用户认证token
client-token : 服务认证token

AG-Admin安全交互流程

img

(3)下沉的服务拆分

image.png

鉴权中心(ace-auth服务)

  • (1)服务认证与鉴权模块
  • (2)用户认证模块 (通过ace-admin认证,可替换)

基础系统(ace-admin服务)

  • (1)用户模块
  • (2)菜单模块、按钮模块
  • (3)角色、权限模块
  • (4)日志模块

其他通用基础模块

  • (1)数据字典
  • (2)附件服务
  • (3)搜索引擎

网关中心(ace-gate服务,作为入口)

  • (1)权限统一处理模块 (通过ace-admin返回的权限)
  • (2)限流

 

(4)业务密切的服务开发

Flow 业务

持续的自动化运维

写一个构建脚本来完成编译,单元测试静态代码分析生成报告等步骤,从而完成持续集成阶段的工作。

然后是自动化测试脚本,这个脚本可以触发自动化测试套件并生成相关报告,最后需要写一个部署脚本,用于将持续集成阶段的产出物部署到测试环境上(当然最后的发布阶段也会重用这个脚本)。

这里需要注意的是要确保部署都是可重复的,重复部署同一个产出物N次的效果与只部署一次的效果相同,也就是大家常说的幂等。


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: