HZERO 使用的开源组件
HZERO 完全基于开源产品打造。HZERO 的本身是使用 Spring Cloud 作为微服务架构,并使用了一些主流的开源工具进行DevOps及监控管理等。同时建议服务运行在 Docker 上,并以 Kubernetes 作为容器管理和编排工具。
应用前端
HZERO 前端使用AntD Pro进行封装拓展。
核心组件有:
- React:一个用于构建用户界面的 JAVASCRIPT 库。
- AntD Pro:基于React的开箱即用的中台前端/设计解决方案。
- Node.js:采用Node打包、构建前端应用
微服务后端
HZERO 的微服务后端采用 Spring Cloud 作为微服务框架,使用 Spring Boot 作为开发脚手架。
核心组件有:
- Spring Cloud:Spring Cloud 是一个集成了众多开源的框架,利用 Spring Boot 的开发便利性实现了服务治理、服务注册与发现、负载均衡、数据监控,REST API 发布方式等,基本囊括了分布式框架所需要的所有功能。是一套易开放、易部署、易维护的分布式开发工具包,如下是HZERO用到的一些Spring Cloud的组件:
组件 | 描述 |
---|---|
Spring Cloud Eureka | Eureka是Netflix开发的服务发现框架 |
Spring Cloud Config | 分布式配置中心组件 |
Spring Cloud Zuul | 网关 |
Spring Cloud Ribbon | 客户端负载均衡 |
Spring Cloud Feign | 声明式服务调用 |
Spring Cloud Hystrix | 熔断器 |
Spring Cloud Security | 为构建安全的应用程序和服务提供了一组简单的原语 |
Spring Websocket | 消息实时推送 |
Oauth2 | 授权的开放标准 |
JWT | JSON Web Token (JWT)是一个开放标准(RFC 7519),用于作为JSON对象在各方之间安全地传输信息 |
Undertow | 基于NIO实现的高并发轻量级的服务器 |
Swagger | Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 |
-
Spring Boot:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
-
Mybatis:一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
-
其他常用工具:
组件 | 描述 |
---|---|
Jackson | 处理JSON和XML格式化的类库 |
Slf4j | 即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。 |
Log4j | 日志组件 |
Guava | Google核心工具包 |
Apache POI | Java编写用来操作Microsoft Office的框架 |
Okhttp3 | 一个高效的HTTP客户端 |
Cglib | 动态代理框架 |
Httpclient | HTTP 协议的客户端编程工具包 |
数据服务层
HZERO 采用 MySQL、Oracle、SqlServer 作为关系型数据存储库,Redis 作为缓存库。
核心组件有:
- MySQL:Mysql 是最流行的开源关系型数据库管理系统。
- Oracle:Oracle 是主流的企业级关系型数据库管理系统。
- SqlServer:SqlServer 是主流的企业级关系型数据库管理系统。
- Redis:Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
运行环境
HZERO 可运行在 Docker、VM、Server 上。
核心组件有:
- Docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
开发测试
HZERO 采用多个代码检查和测试工具,其中,JUnit、Spock 作为后端 Java 代码的测试工具;Selenium 作为前端测试的工具。
核心组件有:
-
JUnit:JUnit 是一个 Java 语言的单元测试框架。
-
Spock: Spock 是一个用于Java或Groovy应用的测试框架。
-
Selenium:Selenium 是一套完整的 web 应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。
系统监控
HZERO 利用主流的开源监控工具,从日志、服务运行环境、调用链等进行全面监控,以便在发生问题时能够快速定位和解决问题。
核心组件有:
-
Zipkin:Zipkin 为分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。
-
Grafana:Grafana 是一个开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,可以混合多种风格,支持多个数据源特点。
-
Promethues:Promethues 是由 SoundCloud 开发的开源监控报警系统和时序列数据库(TSDB)。
-
Micrometer:Micrometer 是一个监控指标的度量类库。