# zlt-microservices-platform

License Downloads Downloads Downloads Downloads

## 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢 [TOC]   ## 1. 社管项目打包与部署 * 1、运行 * 启动nacos服务:运行项目目录中的 zlt-register\nacos\bin\startup.cmd * 在全局配置【zlt-config】中的bootstrap.properties配置【naocs注册中心地址】和【开发环境】,application.properties中配置【开发环境】 * 启动【idaas-center】:修改运行环境为dev,运行idaas-center\src\main\java\com\central\IdaasCenterApp.java * 启动【zuul-gateway】:修改bootstrap.yml的【naocs注册中心地址】,运行zlt-gateway\zuul-gateway\src\main\java\com\central\GatewayApp.java * 除idaas-center\src\main\java\com\central\config\WebConfig.java 配置的路径外,所有接口均需要传SSOToken; * 运行前端vue项目:【scocial-management-platform-frontend】 * 2、打包 * 需要部署的项目:【zuul-gateway】、【idaas-center】和【csb-center】 * 生产环境nacos注册中心为 【127.0.0.1:8848】 * 首先在模块内配置bootstrap.yml的【naocs注册中心地址】,application.yml的【部署环境】、【redis地址】 * 在全局配置【zlt-config】中的bootstrap.properties配置【naocs注册中心地址】和【部署环境】,application.properties中配置【部署环境】, 确保全局和模块的部署环境一致 * 确认配置文件无误后,使用Maven在根目录【central-platform(root)】下执行install,进行打包。 注:打包前建议跳过test步骤 * 打包完成后可在相应模块下的target目录下找到模块jar包 * 3、部署 * 使用电科账号登录EDAS平台 * 在命名空间:dainke_99中,找到相应项目(gateway,idaas-center),即可上传最新jar包进行初次部署或热更新   ## 2. 模块说明 * **备注** * 除zlt-business下的【idaas-center】、【csb-center】和【sms-center】以外,均为原框架项目模块 * 使用了原框架的【zuul-gateway】、【zlt-commons】和【zlt-config】模块实现社管总平台相关模块的开发 * 其中特别说明在【zlt-commons】下的日志模块:zlt-log-spring-boot-starter中,有基于原框架修改的统一埋点日志工具类:【NewPointUtil】, 具体使用方式请参考附件:《社管二期平台系统统一日志输出格式说明-20210409更新xml配置版.docx》 ```lua central-platform -- 父项目,公共依赖 │ ├─zlt-business -- 业务模块一级工程 │ │ ├─ * idaas-center -- 社管平台-总平台统一认证中心[6000] │ │ ├─ * csb-center -- 社管平台-总平台阿里CSB接口服务中心[6100] │ │ ├─废弃 - sms-center -- 社管平台-总平台短信中心[6200] - 废弃 │ │ ├─user-center -- 用户中心[7000] │ │ ├─file-center -- 文件中心[5000] │ │ ├─code-generator -- 代码生成器[7300] │ │ ├─search-center -- 搜索中心 │ │ │ ├─search-client -- 搜索中心客户端 │ │ │ ├─search-server -- 搜索中心服务端[7100] │ │─zlt-commons -- 通用工具一级工程 │ │ ├─zlt-auth-client-spring-boot-starter -- 封装spring security client端的通用操作逻辑 │ │ ├─zlt-common-spring-boot-starter -- 封装通用操作逻辑 │ │ ├─zlt-db-spring-boot-starter -- 封装数据库通用操作逻辑 │ │ ├─ * zlt-log-spring-boot-starter -- 封装log通用操作逻辑 │ │ ├─zlt-redis-spring-boot-starter -- 封装Redis通用操作逻辑 │ │ ├─zlt-ribbon-spring-boot-starter -- 封装Ribbon和Feign的通用操作逻辑 │ │ ├─zlt-sentinel-spring-boot-starter -- 封装Sentinel的通用操作逻辑 │ │ ├─zlt-swagger2-spring-boot-starter -- 封装Swagger通用操作逻辑 │ ├─zlt-config -- 配置中心,全局配置数据库连接、redis等参数 │ ├─zlt-doc -- 项目文档 │ ├─zlt-gateway -- api网关一级工程 │ │ ├─ * zuul-gateway -- netflix-zuul[9900] │ ├─zlt-job -- 分布式任务调度一级工程 │ │ ├─job-admin -- 任务管理器[8081] │ │ ├─job-core -- 任务调度核心代码 │ │ ├─job-executor-samples -- 任务执行者executor样例[8082] │ ├─zlt-monitor -- 监控一级工程 │ │ ├─sc-admin -- 应用监控[6500] │ │ ├─log-center -- 日志中心[6200] │ ├─zlt-uaa -- spring-security认证中心[8000] │ ├─ * zlt-register -- 注册中心Nacos[8848] │ ├─zlt-web -- 前端一级工程 │ │ ├─back-web -- 后台前端[8066] │ ├─zlt-transaction -- 事务一级工程 │ │ ├─txlcn-tm -- tx-lcn事务管理器[7970] │ ├─zlt-demo -- demo一级工程 │ │ ├─txlcn-demo -- txlcn分布式事务demo │ │ ├─seata-demo -- seata分布式事务demo │ │ ├─sharding-jdbc-demo -- sharding-jdbc分库分表demo │ │ ├─rocketmq-demo -- rocketmq和mq事务demo ```   ## 2.2. idaas-center模块说明 * **前言** * 作为社管总平台主要业务模块,在此着重介绍结构; * 代码模块:zlt-business/idaas-center * **主要业务介绍** * 1、对接阿里idaas,集成其提供的接口:包括但不限于用户目录、组织架构、单点登录、权限系统等功能,可在application.yml配置中查看接口地址与描述 * idaas.param:用户目录系统(app**)接口全局配置、权限系统(ps**)接口全局配置 * sso-api: 单点登录相关接口,使用登录后的得到的SSOToken调用 * 代码模块:/modules/sso * app-api: 用户目录、组织机构数据接口,使用APPToken(用户目录系统token)调用 * 代码模块:/modules/application * ps-api: 权限数据接口,使用登录后的得到的PSToken(权限系统)调用 * 代码模块:/modules/permission * 2、对接阿里MQ消息队列 * 作为生产者,负责推送用户登录、登出状态(联创),以及每日用户活跃度数据推送(联科)、用户点击菜单状态(阿里); * 代码模块:/modules/mq * 3、对接阿里CSB云服务总线 * 作为消费者,负责获取用户未读消息数和代办事件数(阿里); * 代码模块:/modules/csb * 实际调用的是【csb-center】服务的接口 * 4、定时任务模块 * 主要完成阿里用户信息和部门信息缓存信息定时更新、每日用户活跃度数据定时推送 * 代码模块:/common/task * 单独的一个定时任务:更新、备份阿里用户数据 * 代码模块:/modules/test/controller/TestIdaasController.java updateUserActLogExId()方法 * 5、琼海分平台对接 * 作为中转站,联通琼花分平台和idaas的用户体系,提供部分idaas接口转发 * 代码模块:idaas-center\src\main\java\com\central\modules\sso\controller\IdaasQHForwordController.java * 配置文件中有对琼海APP服务IP白名单的设置,目前还未提供IP,所以打包前,请注释掉调用checkIP(request)方法的部分代码 * 6、社管APP对接(北信源) * 为社管APP提供用户验证接口 * 代码模块:idaas-center\src\main\java\com\central\modules\sso\controller\IdaasLoginController.java 中的appUser**()方法 ## 3. 原框架介绍 * **技术交流群** [250883130](http://shang.qq.com/wpa/qunwpa?idkey=17544199255998bda0d938fb72b08d076c40c52c9904520b76eb5eb0585da71e) 微服务技术交流群 * **详细在线文档** [点击查看](https://www.kancloud.cn/zlt2000/microservices-platform/936236) * **[项目更新日志](https://www.kancloud.cn/zlt2000/microservices-platform/936235)** * **[文档更新日志](https://www.kancloud.cn/zlt2000/microservices-platform/936236)** * **演示环境地址**: [http://mp.zlt2000.cn](http://mp.zlt2000.cn/) * 账号密码:admin/admin * APM监控账号密码:admin/admin * Grafana账号:zlt/zlt * txlcn事务管理器密码:admin * 任务管理账号密码:admin/123456 * Sentinel:sentinel/sentinel * **演示环境有全方位的监控示例:日志系统 + APM系统 + GPE系统** * Gitee地址:https://gitee.com/zlt2000/microservices-platform * Github地址:https://github.com/zlt2000/microservices-platform * 前后端分离的企业级微服务架构 * 主要针对解决微服务和业务开发时常见的**非功能性需求** * 深度定制`Spring Security`真正实现了基于`RBAC`、`jwt`和`oauth2`的无状态统一权限认证的解决方案 * 提供应用管理,方便第三方系统接入,**支持多租户(应用隔离)** * 引入组件化的思想实现高内聚低耦合并且高度可配置化 * 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖 * 非常适合学习和企业中使用 > 重构于开源项目OCP&cp:https://gitee.com/owenwangwen/open-capacity-platform   ## 4. 项目总体架构图 ![](https://gitee.com/zlt2000/images/raw/master/springcloud微服务架构图.jpg)   ## 4. 功能介绍 * **统一认证功能** * 支持oauth2的四种模式登录 * 支持用户名、密码加图形验证码登录 * 支持手机号加密码登录 * 支持openId登录 * 支持第三方系统单点登录 * **分布式系统基础支撑** - 服务注册发现、路由与负载均衡 - 服务降级与熔断 - 服务限流(url/方法级别) - 统一配置中心 - 统一日志中心 - 统一搜索中心 - 统一分布式缓存操作类、cacheManager配置扩展 - 分布式锁 - 分布式任务调度器 - 支持CI/CD持续集成(包括前端和后端) - 分布式Id生成器 - 分布式事务(强一致性/最终一致性) - 日志链路追踪 * **系统监控功能** - 服务调用链监控 - 应用拓扑图 - 慢查询SQL监控 - 应用吞吐量监控(qps、rt) - 服务降级、熔断监控 - 服务限流监控 - 微服务服务监控 - 服务器监控 - redis监控 - mysql监控 - elasticSearch监控 - nacos监控 - prometheus监控 * **业务基础功能支撑** * 多租户(应用隔离) * 高性能方法级幂等性支持 * RBAC权限管理,实现细粒度控制(方法、url级别) * 快速实现导入、导出功能 * 数据库访问层自动实现crud操作 * 代码生成器 * 基于Hutool的各种便利开发工具 * 网关聚合所有服务的Swagger接口文档 * 统一跨域处理 * 统一异常处理