前言
随着HZERO的开源,为了让大家更好的了解和使用该平台,后面会不定期的为大家分享该平台的一些特性、设计和常见问题分析等,也欢迎在开源社区一起探讨和交流。
官方开源入口 https://gitee.com/open-hand/hzero 或 https://github.com/open-hand/hzero
什么是HZERO
HZERO是汉得信息基于微服务架构开源免费的企业级PaaS平台,可支持企业各类系统搭建或产品研发,帮助企业快速构建技术中台。
以上这个解释比较官方,也比较生涩,这里给大家拆分一下
-
基于
微服务
架构:随着微服务技术的不断成熟,面对企业系统建设面临的快速响应、DevOps等诸多需求提供了新的解决思路和方案 -
可以理解成是一个
架手架
:基于该平台可方便、快速的进行企业级应用系统的开发,避免大量重复造轮子所带来的额外成本,让企业信息化建设的重心放在业务逻辑本身 -
该平台重点适用于
企业级
:市面上也有很多开源的应用系统开发脚手架,但大多功能简单、基于开源的组件整合也比较凌乱,服务支持也不是很好。用于解决一些小系统、简单应用尚可,但面对企业级的复杂应用会比较吃力。HZERO的诞生就是来源于大量企业级应用系统建设的沉淀,在这一块具备先天的优势
总之:HZERO平台为企业技术选型提供了一个重要的参考,降低了微服务技术使用的门槛,有利于加速企业数字化转型的步伐
平台逻辑架构
HZERO采用 J2EE 技术体系,基于Spring Cloud微服务框架进行封装,平台设计灵活可扩展、可移植、可应对高并发需求。同时兼顾本地化、私有云、公有云部署,支持SaaS模式应用。
平台逻辑架构-
开发框架:平台底层应用的基础服务,是一个微服务系统运行所必要的组件服务。平台提供较好的兼容性,可根据需要选择不同的基础组件,如注册中心、配置中心、治理中心等,并能很好的适配阿里云EDAS、百度CNAP等公有云平台。
-
辅助开发包:主要针对开发人员进行技术开发支持,提供一系列通用的开发工具包,定义了基础工具类,如配置、缓存、消息、验证码等工具,减少开发人员重复造轮子,帮助提高代码编写效率。
-
开发组件:主要包含通用的Starter组件,如Excel导入导出、数据防篡改等,另外包含服务客户端组件,便于技术开发过程中,快速使用通用服务提供的能力。
-
通用服务:主要指平台中已包含的开发业务系统所需要的基础服务,如分布式调度、消息、权限、文档、支付管理等,能快速适配各产品线、各业务系统的通用基础功能需求,帮助提高开发效率。
-
基本功能:HZERO平台提供的通用业务功能,目前主要包括平台管理、开发管理、文件管理,报表管理及工作台等一系列业务系统所必须或常用的基础功能。
主要技术特点
基于Java主流开源技术构建
平台基于流行的J2EE技术栈,应用稳定的Spring Cloud微服务框架进行构建,主流开源的架构给我们带来了以下优势:
-
广泛的业界支持:流行的开源技术都是广泛使用的,是业界默认的标准。
-
提高开发效率:流行的开源技术会有大量的开发人员提供大量个性的解决方案,能更快速的找到满足需求的各种解决方案。
-
提高平台的技术稳定性:流行的开源技术已经通过大量的业务场景验证,保证了技术的成熟性,提高了平台和稳定性。
-
可维护性:流行的开源技术确保了各种社区的活跃度,可以更好的解决平台维护过程中遇到的问题。
基于微服务架构设计和扩展
平台采用微服务架构设计,平台基础模块的每一个应用功能都使用微服务完成:
-
每个服务都有一个清楚的功能边界
-
每一个后台服务开放REST API,许多服务本身也采用了其它服务提供的API
-
通过API Gateway来统一API暴露、权限校验、路由转发
-
通过Config配置中心来统一管理平台服务配置
-
每个微服务可以选择独立部署和弹性资源配置
基于HZERO开发的应用系统,可以很容易的将业务对象作为基本单元进行纵向拆分,以交互层次作为标准进行横向拆分,从而形成多应用交互的微应用架构体系,有效的实现应用的拆分,实现敏捷开发和部署。
服务无状态
单个微服务节点的性能在大业务量时性能会遇到瓶颈,无法满足企业对业务系统的要求,HZERO服务采用无状态化设计,可以实现水平扩展部署。
请求流程示意图前后端分离
HZERO提供完整的REST API接口,采用前后端分离技术,可以同时高效的支持移动APP、Web、小程序等应用的开发场景,同时结合Spring Security的OAuth2扩展,采用统一的认证中心,保障REST API的安全性。
前后端分离示意图主要技术栈
技术栈列表后端技术栈
-
核心框架:Spring Framework
-
微服务框架:Spring Cloud
-
安全框架:Spring Security + Spring Oauth + JWT
-
三方登录组件:Spring Social
-
开发框架:Spring Boot
-
任务调度:Quartz
-
持久层框架:MyBatis
-
数据库连接池:Hikari
-
客户端负载均衡:Ribbon
-
熔断组件:Hystrix
-
网关组件:Spring Cloud Gateway
-
日志管理:Logback
-
运行容器:Undertow
-
API文档管理:Swagger2
-
中间件操作组件:Spring Data Redis
DB支持
可支持多种关系型DB,暂时直接支持如下7种,可根据需要再扩展支撑其他DB:
-
ORACLE
-
SQL Server
-
MySQL
-
TiDB
-
GaussDB
-
PostgreSQL
-
HANA
应用的NoSQL DB:
- Redis
前端技术栈
-
JS框架:react、dva、nodejs
-
CSS框架:Less
-
组件库:Ant Design
-
富文本:CKEditor
-
工具库:Lodash、Moment、Mock.js
-
多模块管理:Lerna
-
测试框架:Jest
-
打包构建工具:Webpack
一睹为快
一下仅展示简单的几个页面,需要了解其功能可自行安装部署
默认风格 平铺风格菜单 个人中心本文档资料主要来源于HZERO官方文档,了解详情请可直接访问HZERO开源版白皮书
网友评论