HZERO初体验

作者: 陈同学很忙 | 来源:发表于2020-10-12 08:57 被阅读0次

    前言

    随着HZERO的开源,为了让大家更好的了解和使用该平台,后面会不定期的为大家分享该平台的一些特性、设计和常见问题分析等,也欢迎在开源社区一起探讨和交流。
    官方开源入口 https://gitee.com/open-hand/hzerohttps://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开源版白皮书

    相关文章

      网友评论

        本文标题:HZERO初体验

        本文链接:https://www.haomeiwen.com/subject/serupktx.html