架构说明
# 架构说明
# 联建架构

# 联建架构-新

# 微服务划分及ODC交付架构

# 流程说明
# 华为-赛意对接流程

# 技术特点
# 基于 Java 主流技术
基于流行的 J2EE 技术栈,应用稳定的 Spring Cloud 微服务框架进行构建,主流开源的架构给我们带来了以下优势:
- 广泛的业界支持:流行的开源技术都是广泛使用的,是业界默认的标准。
- 提高开发效率:流行的开源技术会有大量的开发人员提供大量个性的解决方案,能更快速的找到满足需求的各种解决方案。
- 提高平台的技术稳定性:流行的开源技术已经通过大量的业务场景验证,保证了技术的成熟性,提高了平台和稳定性。
- 可维护性:流行的开源技术确保了各种社区的活跃度,可以更好的解决平台维护过程中遇到的问题。
# 基于微服务架构设计
微服务开发平台采用微服务架构设计,支持构建、测试、部署和管理微服务架构的平台,它的优势包括:
- 提高开发效率:微服务开发平台可以提供一系列的工具和服务,例如自动化构建、测试和部署工具,使得开发人员能够更快速、更高效地开发和部署微服务。
- 更好的可扩展性:微服务开发平台提供的微服务架构可以更容易地进行水平扩展,可以快速增加或减少服务实例以满足不同的负载需求,从而提高系统的可扩展性。
- 更高的灵活性:微服务开发平台的架构可以根据需求进行自由的组合和定制,从而提供更灵活的解决方案,而不是单一的解决方案。
- 更好的容错性:微服务开发平台的架构可以在单个服务出现故障时保持整个系统的运行,同时还可以快速诊断和恢复故障服务,从而提高了系统的容错性。
- 更好的可维护性:微服务开发平台的架构可以将系统分解为多个小型服务,每个服务都可以独立地进行开发、测试和部署,从而降低了代码耦合度,提高了代码的可维护性。
- 综上所述,微服务开发平台可以提供更高效、更灵活、更可扩展和更可维护的解决方案,适用于现代化的应用程序开发。
# 服务无状态
微服务开发平台采用无状态化设计,可以提高系统的性能、可靠性和灵活性,并降低系统的成本, 它具备能力包括:
- 更高的可伸缩性:由于无状态服务不保存任何客户端相关的数据,因此它们可以更容易地进行水平扩展。水平扩展可以快速增加或减少服务实例以满足不同的负载需求,从而提高系统的可伸缩性。
- 更好的容错性:无状态服务可以更容易地进行故障转移和恢复,因为它们的状态不会影响系统的稳定性。当一个服务实例出现故障时,系统可以自动将流量转移到其他可用的实例上,从而保持整个系统的正常运行。
- 更好的性能:无状态服务可以更快速地响应客户端请求,因为它们不需要在每个请求之间维护和恢复状态。此外,由于水平扩展可以提供更多的服务实例,因此可以更快速地处理大量的并发请求。
- 更低的成本:无状态服务通常比有状态服务更容易编写、测试和维护,因为它们不需要考虑状态的管理和恢复。此外,水平扩展可以使用低成本的硬件来处理大量的请求,从而降低了系统的成本。
# 前后端分离
微服务开发平台提供完整的 REST API 接口,采用前后端分离技术,其好处包括:
- 更好的协作性:前后端分离架构可以让前端和后端开发人员分别专注于各自的领域,可以同时高效的支持移动 APP、Web、小程序等应用的开发场景,减少了彼此的依赖和干扰,从而提高了开发效率和协作性。
- 更好的可扩展性:由于前后端分离架构将前端和后端分离,因此可以更容易地进行横向和纵向的扩展。横向扩展可以通过增加前端和后端服务器的数量来增加系统的吞吐量,而纵向扩展可以通过增加前端和后端服务器的硬件配置来提高系统的性能。
- 更好的维护性:由于前后端分离架构将前端和后端分离,因此可以更容易地维护和升级系统的各个部分。如果需要修改前端或后端的某个功能,可以只修改相应的代码,而不需要影响到整个系统的其它部分。
- 更好的安全性:由于前后端分离架构将前端和后端分离,可以更好地控制前端和后端之间的数据流动和访问权限,从而提高了系统的安全性。使用 Spring Authorization Server OAuth 2.0 等认证和授权协议来保护系统的数据安全性。
- 更好的灵活性:由于前后端分离架构将前端和后端分离,可以更容易地切换或替换前端或后端的技术栈和框架,从而提高了系统的灵活性和可扩展性。例如,可以在不影响系统其它部分的情况下,替换前端或后端的某个框架或组件,以提高系统的性能或功能。
# 微前端架构
微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。
通俗来说,就是在一个web应用中可以独立的运行另一个web应用
无界微前端参考资料 https://wujie-micro.github.io/doc/guide/
# 高可用
微服务开发平台通过合理地配置以下这些技术手段,可以保证服务的连续性、性能和可用性,从而满足用户的需求。
- 集群化部署:在多个节点上部署同一个服务,可以提高服务的可用性。当某个节点出现故障时,可以将请求自动转发到其它节点上,保证服务的连续性。
- 负载均衡:负载均衡可以将客户端请求分配到不同的服务节点上,从而避免某个节点负载过重而导致服务不可用。支持常用的负载均衡算法包括轮询、随机、哈希等。
- 故障转移:当某个服务节点出现故障时,需要自动将请求转移到其它可用的节点上,保证服务的连续性。
- 自动扩缩容:自动扩缩容可以根据系统的负载自动增加或减少服务节点的数量,保证系统的性能和可用性。
- 数据复制和备份:数据复制和备份可以保证数据的可靠性和可用性。
# 可扩展
企业业务需求通常比较复杂,因此实现这些需求的业务系统在代码层面上也是非常复杂的,如果没有合理的结构来组织这些重要代码,对企业后期开发或调整新业务逻辑、维护业务系统等都会造成麻烦,甚至有可能导致重构功能而浪费人力物力。
- 模块化设计与开发,将应用拆分为多个模块,每个模块都有独立的功能和职责,可以方便地进行扩展和维护。通过模块化设计,可以避免应用的不必要耦合,提高代码的可读性和可维护性。
# 技术栈
# 后端技术栈
- 开发框架:Spring Boot 2.7
- 微服务框架:Spring Cloud 2021 spring-cloud-huawei
- 安全框架:Spring Security + Spring Authorization Server
- 任务调度: PowerJob
- 数据库支持: MySQL、Oracle、SQL Server、PostgreSQL、 达梦、 TiDB
- 持久层框架:iDME SDK
- 服务注册与发现: Nacos
- 客户端负载均衡:Spring Cloud Loadbalancer
- 熔断组件:Sentinel
- 网关组件:Spring Cloud Gateway
- 日志管理:Logback
- 运行容器:Undertow
- 分布式事务:Seata
# 前端技术栈
- 框架:Vue 3.2、TypeScript
- 微前端框架:无界
- CSS 框架:Sass
- 组件库:TinyVue TinyPro
- 低代码引擎: TinyEngine
- 打包构建工具:Webpack
在线编辑 (opens new window)