# console **Repository Path**: bootstrap2table/console ## Basic Information - **Project Name**: console - **Description**: 彩虹中台可视化组件库,搭配彩虹中台基础组件一起助力微服务快速落地。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-23 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 彩虹微服务控制台 #### 介绍 ###### 彩虹微服务中台的控制台管理组件,提供一键式部署与可视化管理相关功能,权限配置,代码生成,系统监控,定时任务,流量控制等可视化控制台功能。 #### 中台控制台概述 彩虹中台拆分为framework+dashboard,framework提供基础组件库+dashboard可视化控制台,两者结合使用一起为微服务提供一键落地的快速部署方案,感兴趣请联系我!,邮箱:1335157415@qq.com  [彩虹中台](https://gitee.com/bootstrap2table/platform)  [彩虹商城](https://gitee.com/bootstrap2table/mall) #### 依赖工具 - 网盘链接:https://pan.baidu.com/s/1eJNDSgKQnp8TEStQ6_oWDg 提取密码: 6666 #### 依赖环境 jdk(1.8/11)+maven3.0+nexus3.9.0+nacos2.1.2+mysql5.7+pgsql-14 #### **项目结构** ``` platform │ ├─document 微服务控制台初始化文档 │ ├─console 微服务可视化组件 │ ├─visual-authority 微服务后台用户权限维护系统 端口:8000 │ ├─visual-monitor SpringBootAdmin服务监控 端口:8010 │ ├─visual-autocode 微服务Mysql代码的生成工具 端口:8020 │ ├─visual-xxl-job XxlJob分布式任务控制台 端口:8030 │ ├─visual-sentinel sentinel服务熔断器控制台 端口:8040 │ ├─visual-codepgsql 微服务Pgsql代码的生成工具 端口:8050 │ └─visual-rocketmq RocketMq-console控制台 端口:8090 ``` #### 快速启动 - 1.启动系统之前,请仔细参考中台部分的[doc文档](https://docs.apipost.cn/preview/1add88839cfb5033/9522c14528d7003b),了解系统的信息,快速入门上手使用。 - 2.在顶层的pom.xml配置好,对应的服务参数,先执行mvn versions:set -DnewVersion=1.0.0.RELEASE,在执行mvn -N versions:update-child-modules,最后执行maven clean install打包。 - 3.按照2步骤打包完毕,依次启动对应的中台控制台程序,依次访问控制台程序可以看到效果。 #### 注意事项 - #### 1 项目发版时,设置统一版本号可以在顶级pom.xml,在maven中运行:mvn versions:set -DnewVersion=1.0.1-SNAPSHOT,然后mvn -N versions:update-child-modules控制台会打印All child modules are up to date.表示所有版本号已修改,最后执行:mvn:clean install -DskipTests [版本统一更新](https://blog.csdn.net/bluetjs/article/details/90295973) - #### 2 项目发版时,versions-maven-plugin在最顶级POM,从(dev,fat,uat,pro)选择一个profile打包,整个项目会统一打包成对应环境程序 - #### 3 微服务需要在网关接口的header传递对应版本号和clientId还有token,header被Nepxion启动版本灰度发布,clientId鉴权认证服务验证token合法性,当三者满足时,才允许请求通过。 - #### 4 权限管理服务采用[pb_cms](https://gitee.com/bootstrap2table/pb-cms/tree/oauth2),后台配置的微服务系统资源数据,微服务授权登录时,可直接读取权限资源并鉴权处理,可生产环境使用该项目。 - #### 5 微服务权限认证,采用resetTemplate集成loadbanlce方式远程请求,需要跟微服务环境配置在相同的nacos的namespace中便于负载均衡,微服务鉴权auth和gateway放在微服务端,一起部署到相同nacos的namespace - #### 6 部署在线LEAF,微服务集中UUID生成中心,提供号段和雪花两种模式,集中生成对应的业务唯一编号。体验地址为:[leaf](http://106.12.105.21:5555/doc.html) - #### 7 中台采用sentinel作为熔断降级处理方案,微服务代码块需要注意关闭hystrix熔断降级的处理方案,切换到sentinel的模式下的熔断降级处理解决方案。 - #### 8 common-core添加全局自定义参数验证方法,需要个性化验证统一自己写验证处理逻辑,手机号验证代码示例如下:public class PhoneValidHandler extends DefaultValidHandler{} - #### 9 添加i18n国际化支持,common-core里面只是写了部分国际化配置,具体微服务里面需要写自己的国际化配置文件,程序国际化响应以微服务配置为准,国际化参数是在header传递(Accept-Language=zh-CN/en-US)切换中英文。 - #### 10 集成mongdb和influxdb内存缓存和时序数据库支持,配置springBootAdmin集成钉钉机器人,调整springBootAdmin组件代码结构,增加mybatis代码增强组件工具。 - #### 11 提供minio对象存储组件包,线上演示环境可以体验minio简单存储的快捷使用,生产环境建议采用阿里OSS或者亚马逊S3对象存储服务功能,大厂花钱的产品还是靠谱滴 - #### 12 新增message消息通知模块,方便快捷集成与使用,目前支持email和钉钉消息两种通知方式,具体使用示例请参考对应message-notify-spring-boot-starter的readme.md文档说明 - #### 13 mysql数据库的时间戳推荐使用timestamp,不推荐使用datetime。seata1.4.2针对datetime反序列化存在无法解析的问题,同时涉及UTC国际化处理时datetime也不方便,建议使用timestamp。 - #### 14 feign调用时,被调用方出现异常的时候,默认会被全局异常处理掉,此时处理结果向发起方返回时,会提示feign.decode的类型不一致异常,这个属于正常的情况,如果需要正确返回可以自己捕获异常然后返回或者降级处理。 - #### 15 引入数据库文档处理工具screw,方便快速生成数据库的文档结构,建议针对废弃的表和备份表分别采用不同的后缀来区分,比如备份表:as_assets_20220330_bak表示备份表 - #### 16 使用sentinel做服务熔断处理时,接口资源被流控处理时,此时资源会直接被拒绝请求,建议添加degrade方法处理,可以在degrade里面知道熔断了,后续可以显示的抛出异常或者提示处理等。 - #### 17 配置统一valid,方便快捷自定义控制层入参校验,使用@NeedCustomValid(required = true,message = "user.phone.notnull",customHandlerClass = PhoneValidHandler.class)标注在字段上,示例请参考彩虹商城服务; - #### 18 配置统一rocketMq半事务消息处理,消息生产者和消息消费者可快速接入使用,两方只需要关注本地业务处理即可,组件封装了消费者幂等处理逻辑。半事务消息体的JSON字符串中必须含字段{"globalId":"全局事务id","branchId":"分支事务id"},否则系统会报错。 - #### 19 对于延迟处理的方式,在用户服务示例中,已经分别接入rocketMq延迟队列和redis过期时间监听两种方式皆可实现,基于消息可靠性而言建议采用rocketMq的延迟消息方式处理,配合spring-retry模块,可以在延迟消费失败时,优雅重试。 - #### 20 中台封装了统一批量更新处理(拼接多条更新sql,最终每次1000条执行,返回结果1),若需要保证更新数据时,严格一致性(比如:更新一批数据中存在一条更新失败,mybatis更新失败返回0,并不会报错,此种场景下数据不存在导致),避免此问题场景建议更新之前检查好数据,出现不存在抛异常处理。 - #### 21 中台封装了统一批量更新和新增处理,时间格式采用Instant接收,(mysql时间戳到微秒无法直接接收Instant的默认纳秒需要转换成微秒),pgsql可以正常接收处理,框架目前支持mysql和pgsql其他数据库敬请期待............. - #### 22 服务熔断建议采用sentinel方式,在需要降级处理的方法上加上@SentinelResource注解方式来配置对应降级处理逻辑,实例参考用户服务