SpringCloud配置中心
SpringCloud配置中心
1. 配置中心的作用和意义
回答
配置中心是微服务架构中的核心组件,用于集中管理和动态更新应用程序的配置信息。它将配置从应用程序中分离出来,实现统一管理、动态更新和版本控制,显著提高系统的可维护性和灵活性。
在微服务架构中,每个服务都需要大量配置信息,如数据库连接、缓存设置、服务地址等。配置中心通过集中化管理解决了配置分散、难以维护、容易不一致等问题,同时提供环境隔离、安全控制、配置审计等高级功能。
分析
微服务架构的复杂性不仅体现在服务拆分上,更体现在配置管理的挑战中。传统的配置管理方式是将配置信息硬编码在应用程序中,或者使用配置文件的方式。这种方式在单体应用中尚且可行,但在微服务架构中却带来了巨大的管理负担。
想象一下,一个包含几十个微服务的系统,每个服务都有自己的数据库连接、缓存配置、外部API地址等配置信息。如果这些配置分散在各个服务中,当需要修改某个配置时,就需要逐个服务进行修改,不仅效率低下,还容易出现遗漏和错误。更严重的是,不同环境(开发、测试、生产)的配置差异,如果管理不当,很容易导致配置混乱,甚至引发生产事故。
配置中心的核心价值在于它提供了一个统一的配置管理平台。所有的配置信息都集中存储在配置中心,各个服务通过配置中心获取所需的配置。这种设计带来了几个重要优势:首先,配置的修改只需要在配置中心进行,所有相关的服务都能自动获取到最新的配置,大大提高了配置管理的效率;其次,配置中心支持环境隔离,可以为不同的环境(开发、测试、生产)维护不同的配置版本,避免了环境间的配置混淆;最后,配置中心还提供了版本控制功能,可以追踪配置的变更历史,在出现问题时快速回滚到之前的配置版本。
除了基本的配置管理功能,现代配置中心还提供了更多高级特性。动态配置更新是其中最重要的功能之一,它允许在不重启服务的情况下更新配置,这对于生产环境的高可用性至关重要。配置加密功能保护敏感信息的安全,如数据库密码、API密钥等。访问控制和审计日志功能确保配置的安全性和可追溯性,满足企业级应用的安全要求。
2. Spring Cloud配置中心技术选型
回答
Spring Cloud生态中主要有Spring Cloud Config、Nacos、Apollo三种配置中心方案。Spring Cloud Config基于Git版本控制,适合对版本管理要求高的场景;Nacos功能全面,支持配置管理和服务发现,是微服务架构的理想选择;Apollo功能完善,支持配置审计,适合大型企业级应用。
选择配置中心时需要综合考虑技术成熟度、学习成本、功能需求等因素。对于简单微服务架构,Spring Cloud Config足够使用;对于需要服务发现的场景,Nacos是更好的选择;对于大型企业,Apollo提供了更完善的企业级功能。
分析
在微服务架构中,配置中心的技术选型是一个重要的架构决策,它直接影响着系统的可维护性、可扩展性和运维效率。不同的配置中心方案各有其特点和适用场景,需要根据实际的项目需求和团队技术栈来做出选择。
Spring Cloud Config作为Spring官方提供的配置中心,与Spring Cloud生态的集成度最高,学习成本相对较低。它基于Git或SVN等版本控制系统来存储配置,这种设计带来了几个优势:首先,配置的版本管理变得非常简单,可以通过Git的分支、标签等功能来管理不同环境的配置;其次,配置的变更历史完全可追溯,便于审计和问题排查;最后,Git的分布式特性使得配置的备份和恢复变得容易。然而,Spring Cloud Config也存在一些局限性,比如动态配置更新需要额外的配置,不支持服务发现功能,对于复杂的微服务架构来说功能相对简单。
Nacos是阿里巴巴开源的一个综合性平台,不仅提供配置管理功能,还集成了服务发现、服务注册等功能。这种一体化的设计使得Nacos特别适合微服务架构,因为它能够同时解决配置管理和服务治理两个核心问题。Nacos的配置管理功能非常强大,支持配置的动态更新、配置的加密解密、配置的灰度发布等高级特性。它的长轮询机制确保了配置变更的实时性,同时减少了网络开销。此外,Nacos还提供了完善的控制台界面,使得配置管理变得直观和便捷。
Apollo是携程开源的企业级配置中心,在功能完善度和稳定性方面表现突出。它提供了丰富的企业级功能,包括配置的灰度发布、配置的审计日志、配置的权限管理等。Apollo的设计理念是"配置即服务",它将配置管理提升到了服务化的高度,提供了完整的配置生命周期管理。对于大型企业来说,Apollo的这些特性非常重要,因为它能够满足企业级应用在安全性、可审计性、可管理性方面的严格要求。
3. Spring Cloud Config实现原理
回答
Spring Cloud Config基于Git版本控制系统实现配置管理,由Config Server和Config Client两个核心组件组成。Config Server从Git仓库读取配置并提供REST API,Config Client通过API获取配置并应用到应用程序中。
当配置发生变化时,Config Server可以通过Webhook或消息总线通知Config Client更新配置。Config Client支持@RefreshScope注解实现配置热更新,无需重启服务即可应用新配置。整个系统通过Git的版本控制能力实现配置的版本管理和回滚功能。
分析
Spring Cloud Config的设计理念是将配置管理作为版本控制系统的一部分,这种设计充分利用了Git在版本管理方面的成熟能力。Config Server作为配置服务的核心,承担着配置的读取、验证、分发等重要职责。它通过Git客户端连接到配置仓库,能够实时获取最新的配置信息,并通过REST API将这些配置提供给各个微服务。
Config Server的工作流程相对简单但高效。当收到配置请求时,它会根据请求的服务名称、环境、分支等信息,从Git仓库中读取对应的配置文件。这些配置文件通常是YAML或Properties格式,Config Server会将这些文件解析成标准的配置格式,然后通过HTTP响应返回给客户端。为了提高性能,Config Server通常会缓存配置信息,只有在配置发生变化时才会重新从Git仓库读取。
Config Client是配置消费端,它负责从Config Server获取配置并将其应用到Spring应用程序中。Config Client在应用启动时会向Config Server请求配置信息,并将这些配置加载到Spring的Environment中。这样,应用程序就可以通过@Value注解或@ConfigurationProperties来使用这些配置。
动态配置更新是Spring Cloud Config的一个重要特性,它通过Spring Cloud Bus实现。当配置发生变化时,Config Server会通过消息总线(如RabbitMQ、Kafka)发送配置变更事件,Config Client接收到这些事件后会刷新本地的配置缓存。为了支持配置的热更新,Spring Cloud Config提供了@RefreshScope注解,被这个注解标记的Bean在配置更新时会重新创建,从而应用新的配置。
4. Nacos配置中心核心机制
回答
Nacos配置中心通过配置管理、发布订阅、长轮询等机制实现配置的动态更新。配置管理负责存储和版本控制,发布订阅机制确保配置变更的实时推送,长轮询技术减少网络开销并提高响应速度。
Nacos的长轮询机制是其核心技术之一,客户端发送长轮询请求后,服务器保持连接等待配置变更。当配置发生变化时立即推送,否则超时后返回空响应,客户端继续发送新的长轮询请求。这种机制既保证了配置更新的实时性,又避免了频繁的短连接开销。
分析
Nacos作为阿里巴巴开源的配置中心,在技术实现上有很多创新之处,特别是在配置的动态更新方面。传统的配置中心通常采用定时轮询的方式来检查配置更新,这种方式虽然简单,但存在明显的性能问题:如果轮询间隔太短,会产生大量的无效请求;如果轮询间隔太长,配置更新的实时性就无法保证。
Nacos采用的长轮询机制巧妙地解决了这个问题。当客户端需要监听配置变更时,它会向Nacos服务器发送一个长轮询请求。服务器接收到请求后,不会立即返回响应,而是将请求挂起,等待配置发生变化。如果在超时时间内配置发生了变化,服务器会立即将新的配置推送给客户端;如果超时时间内没有配置变化,服务器会返回一个空响应,客户端收到响应后立即发送下一个长轮询请求。
这种设计的优势非常明显。首先,它保证了配置更新的实时性,配置一旦发生变化,客户端能够在毫秒级的时间内收到通知;其次,它大大减少了网络开销,避免了频繁的短连接建立和断开;最后,它提高了系统的整体性能,减少了服务器的负载压力。
Nacos的配置管理机制也非常完善。它支持多种配置格式,包括Properties、YAML、JSON等,满足不同场景的需求。配置的存储采用分布式架构,支持集群部署,确保高可用性。同时,Nacos还提供了配置的版本控制功能,可以追踪配置的变更历史,支持配置的回滚操作。
在安全方面,Nacos提供了完善的权限控制机制。它支持基于角色的访问控制(RBAC),可以为不同的用户分配不同的权限。敏感配置支持加密存储,确保配置信息的安全性。此外,Nacos还提供了详细的审计日志,记录所有的配置操作,便于安全审计和问题排查。
5. 配置中心高可用和容错机制
回答
配置中心的高可用通过集群部署、负载均衡、配置缓存等机制实现。集群部署确保单点故障时服务不中断,配置缓存让客户端在配置中心不可用时仍能正常运行,降级处理提供备用方案保证系统稳定性。
容错机制包括客户端缓存、本地配置备份、健康检查等。当配置中心出现故障时,客户端可以使用本地缓存的配置继续运行,同时通过健康检查及时发现和恢复故障节点,确保配置服务的持续可用。
分析
在微服务架构中,配置中心作为基础设施的重要组成部分,其可用性直接影响着整个系统的稳定性。如果配置中心出现故障,所有依赖配置的微服务都可能受到影响,甚至导致整个系统瘫痪。因此,配置中心的高可用设计是至关重要的。
集群部署是配置中心高可用的基础。通过部署多个配置中心节点,当某个节点出现故障时,其他节点可以继续提供服务。这种设计不仅提高了系统的可用性,还通过负载均衡提高了系统的性能。在Nacos中,集群部署采用了Raft一致性算法来保证数据的一致性,确保所有节点的配置数据保持同步。
配置缓存是另一个重要的容错机制。客户端在获取配置时,会将配置信息缓存在本地内存中。这样,即使配置中心暂时不可用,客户端也可以使用本地缓存的配置继续运行。缓存机制不仅提高了系统的容错能力,还减少了网络请求,提高了性能。当然,缓存也会带来数据一致性的问题,因此需要合理设置缓存的过期时间和更新策略。
降级处理是配置中心容错机制的重要组成部分。当配置中心完全不可用时,系统需要有一个备用的配置方案。这通常包括本地配置文件、环境变量、默认配置等。降级处理的关键是要确保备用配置能够满足系统的基本运行需求,同时要能够快速检测到配置中心的恢复,并重新切换到配置中心。
健康检查机制用于及时发现和恢复故障节点。配置中心通常会提供健康检查接口,客户端可以定期调用这些接口来检查配置中心的状态。当发现配置中心不可用时,客户端可以切换到其他可用的节点,或者启用降级处理机制。同时,配置中心也会监控各个客户端的健康状态,及时发现和处理异常情况。
6. 配置中心安全和权限控制
回答
配置中心的安全机制包括配置加密、访问控制、审计日志等。敏感配置如数据库密码、API密钥等需要加密存储,访问控制通过用户认证和权限管理确保只有授权用户才能访问配置,审计日志记录所有配置操作便于安全审计。
权限控制采用基于角色的访问控制(RBAC)模型,支持细粒度的权限管理。不同用户可以根据角色访问不同的配置,配置的修改、删除等操作都需要相应的权限。同时支持配置的加密传输,确保配置信息在网络传输过程中的安全性。
分析
在微服务架构中,配置信息往往包含大量的敏感数据,如数据库连接字符串、API密钥、密码等。这些信息如果泄露,可能会带来严重的安全风险。因此,配置中心的安全设计是至关重要的,需要在保证功能性的同时,确保配置信息的安全性。
配置加密是配置中心安全机制的核心。敏感配置在存储和传输过程中都需要进行加密处理。现代配置中心通常支持多种加密算法,如AES、RSA等,用户可以根据安全需求选择合适的加密方式。加密密钥的管理也是一个重要问题,通常采用密钥管理系统(KMS)来统一管理加密密钥,避免密钥泄露的风险。
访问控制机制确保只有授权用户才能访问配置信息。这通常通过用户认证和权限管理来实现。用户认证可以采用多种方式,如用户名密码、OAuth2、JWT等。权限管理采用基于角色的访问控制模型,可以为不同的用户分配不同的角色,每个角色具有不同的权限。例如,普通用户只能查看配置,管理员用户可以修改配置,超级管理员可以删除配置等。
审计日志是配置中心安全机制的重要组成部分。它记录所有的配置操作,包括配置的查看、修改、删除等操作,以及操作的用户、时间、IP地址等信息。这些日志信息对于安全审计、问题排查、合规性检查都非常重要。审计日志通常需要长期保存,并且要防止被篡改,因此通常采用专门的日志管理系统来存储和管理这些日志。
网络安全也是配置中心安全考虑的重要方面。配置中心通常部署在内网环境中,通过防火墙和网络隔离来保护配置信息的安全。对于需要跨网络访问的场景,通常采用VPN或专线连接来确保网络传输的安全性。同时,配置中心还支持HTTPS协议,确保配置信息在传输过程中的加密。
7. 配置中心性能优化和监控
回答
配置中心的性能优化包括缓存策略、连接池管理、批量操作等。合理的缓存策略减少重复请求,连接池管理提高资源利用率,批量操作减少网络开销。同时需要建立完善的监控体系,包括性能指标、错误率、响应时间等关键指标的监控。
监控体系应该覆盖配置中心的各个组件,包括服务器性能、客户端连接数、配置更新频率等。通过实时监控和告警机制,及时发现性能瓶颈和异常情况,确保配置中心的高效稳定运行。
分析
配置中心作为微服务架构中的基础设施,其性能直接影响着整个系统的响应速度和稳定性。随着微服务数量的增加,配置中心的负载也会相应增加,因此性能优化变得尤为重要。
缓存策略是配置中心性能优化的核心。配置信息通常具有较高的读取频率和较低的更新频率,这种特点非常适合使用缓存来提高性能。配置中心通常采用多级缓存策略:第一级是内存缓存,用于存储最常用的配置信息;第二级是本地文件缓存,用于存储配置的快照;第三级是分布式缓存,用于在集群节点间共享配置信息。这种多级缓存策略既提高了读取性能,又保证了数据的一致性。
连接池管理是另一个重要的性能优化点。配置中心需要处理大量的客户端连接,如果每个连接都独立管理,会消耗大量的系统资源。通过连接池技术,可以复用连接,减少连接的建立和断开开销,提高系统的并发处理能力。连接池的大小需要根据实际的并发需求来调整,既要保证足够的连接数,又要避免资源浪费。
批量操作是减少网络开销的有效手段。当客户端需要获取多个配置时,如果采用逐个请求的方式,会产生大量的网络开销。通过批量操作,可以将多个配置请求合并成一个请求,大大减少网络传输的次数和开销。同时,批量操作还可以减少服务器的处理压力,提高整体的处理效率。
监控体系是确保配置中心稳定运行的重要保障。监控指标应该覆盖配置中心的各个方面,包括服务器性能指标(CPU、内存、磁盘、网络)、应用性能指标(响应时间、吞吐量、错误率)、业务指标(配置数量、更新频率、访问频率)等。这些指标需要通过监控系统进行实时采集和分析,当指标超过预设阈值时,及时发送告警通知。
告警机制是监控体系的重要组成部分。告警规则应该根据实际业务需求来设置,既要避免误报,又要确保重要问题能够及时发现。告警通知可以采用多种方式,如邮件、短信、即时消息等,确保相关人员能够及时收到告警信息。同时,告警信息应该包含足够的上下文信息,便于快速定位和解决问题。
8. 配置中心最佳实践和设计模式
回答
配置中心的最佳实践包括合理的配置分类、环境隔离、版本管理、安全控制等。配置应该按照功能模块进行分类管理,不同环境使用不同的配置空间,建立完善的版本控制机制,实施严格的安全控制措施。
设计模式方面,采用配置分层、配置继承、配置覆盖等模式提高配置管理的灵活性。通过合理的配置组织结构,减少配置的重复和冲突,提高配置的可维护性和可扩展性。
分析
配置中心的设计和使用需要遵循一定的最佳实践,这些实践来自于实际项目中的经验总结,能够帮助团队更好地管理配置,避免常见的问题和陷阱。
配置分类是配置管理的基础。在微服务架构中,配置信息通常包括应用配置、环境配置、业务配置等多个方面。合理的配置分类能够提高配置的可读性和可维护性。应用配置包括数据库连接、缓存设置、日志配置等;环境配置包括不同环境的特定设置,如开发环境、测试环境、生产环境;业务配置包括业务相关的参数设置,如超时时间、重试次数、限流阈值等。
环境隔离是配置管理的重要原则。不同环境(开发、测试、生产)的配置通常存在差异,如数据库地址、API端点、日志级别等。通过环境隔离,可以为每个环境维护独立的配置空间,避免环境间的配置混淆。这种隔离不仅提高了配置的安全性,还简化了配置的管理和维护工作。
版本管理是配置中心的核心功能之一。配置的变更历史需要完整记录,包括变更的时间、变更的内容、变更的原因、变更的人员等信息。这种版本管理不仅有助于问题排查和回滚操作,还满足了审计和合规性要求。当配置出现问题时,可以快速回滚到之前的稳定版本,减少故障的影响范围。
安全控制是配置中心不可忽视的方面。敏感配置如数据库密码、API密钥等需要加密存储,访问控制确保只有授权用户才能访问配置,审计日志记录所有的配置操作。这些安全措施不仅保护了配置信息的安全,还满足了企业级应用的安全要求。
在设计模式方面,配置分层是一个重要的设计原则。配置可以按照不同的层次进行组织,如全局配置、应用配置、模块配置等。全局配置适用于所有服务的通用配置,应用配置适用于特定应用的配置,模块配置适用于特定模块的配置。这种分层设计提高了配置的复用性和可维护性。
配置继承是另一个有用的设计模式。子配置可以继承父配置的设置,同时可以覆盖特定的配置项。这种继承机制减少了配置的重复,提高了配置的一致性。例如,所有服务都可以继承全局的数据库连接配置,而特定服务可以覆盖数据库连接池的大小等配置。
配置覆盖机制提供了配置的灵活性。当多个配置源存在相同的配置项时,需要定义明确的覆盖规则。通常的规则是:环境变量 > 命令行参数 > 配置文件 > 默认值。这种覆盖机制使得配置既具有默认值,又具有灵活性,能够适应不同的部署环境。
9. 配置中心与微服务架构的集成
回答
配置中心与微服务架构的集成需要考虑服务发现、配置分发、动态更新等关键问题。通过合理的集成方案,实现配置的统一管理和动态更新,提高微服务架构的灵活性和可维护性。
集成方案包括客户端集成、服务端集成、网关集成等多个层面。客户端集成确保服务能够正确获取和应用配置,服务端集成提供配置的统一管理,网关集成实现配置的全局控制。同时需要考虑配置的优先级、继承关系、覆盖规则等细节问题。
分析
微服务架构的复杂性不仅体现在服务的拆分上,更体现在服务间的协调和配置管理上。配置中心作为微服务架构的重要组成部分,其集成方案直接影响着整个架构的稳定性和可维护性。
客户端集成是配置中心与微服务架构集成的核心。每个微服务都需要集成配置中心的客户端,以便获取和应用配置。这种集成通常通过Spring Cloud的自动配置机制来实现,开发者只需要添加相应的依赖和配置,Spring Boot就会自动配置配置中心的客户端。客户端集成需要考虑配置的加载顺序、配置的刷新机制、配置的容错处理等问题。
服务端集成主要解决配置的统一管理问题。配置中心需要提供完善的API接口,支持配置的增删改查操作。这些接口不仅要支持基本的配置管理功能,还要支持高级功能如配置的版本管理、配置的灰度发布、配置的权限控制等。同时,服务端还需要提供完善的监控和告警功能,确保配置服务的稳定运行。
网关集成是配置中心与微服务架构集成的另一个重要方面。API网关作为微服务架构的入口,需要能够动态获取和应用配置。这种集成使得网关可以根据配置动态调整路由规则、限流策略、认证方式等。网关集成不仅提高了系统的灵活性,还简化了配置的管理和维护工作。
配置的优先级管理是集成过程中需要重点考虑的问题。在微服务架构中,配置可能来自多个来源,如环境变量、配置文件、配置中心等。需要定义明确的优先级规则,确保配置的正确应用。通常的优先级规则是:环境变量 > 配置中心 > 配置文件 > 默认值。这种优先级规则既保证了配置的灵活性,又确保了配置的一致性。
配置的继承和覆盖机制是微服务架构中配置管理的重要特性。通过配置继承,子服务可以继承父服务的配置,减少配置的重复。通过配置覆盖,子服务可以覆盖特定的配置项,满足个性化的需求。这种机制提高了配置的复用性和可维护性,降低了配置管理的复杂度。
动态配置更新是微服务架构中配置中心的重要特性。当配置发生变化时,相关的微服务需要能够及时获取和应用新的配置,而无需重启服务。这种动态更新机制通过Spring Cloud的@RefreshScope注解来实现,被这个注解标记的Bean在配置更新时会重新创建,从而应用新的配置。
配置的容错处理是集成过程中不可忽视的方面。当配置中心不可用时,微服务需要能够使用本地缓存的配置继续运行。这种容错机制确保了系统的稳定性,避免了因配置中心故障导致的系统瘫痪。同时,还需要考虑配置的降级策略,当某些配置无法获取时,使用默认配置或备用配置。
10. 配置中心的未来发展趋势
回答
配置中心的未来发展趋势包括云原生支持、智能化管理、多语言支持、标准化协议等。云原生支持让配置中心更好地适应容器化和Kubernetes环境,智能化管理通过AI技术实现配置的自动优化和问题预测。
多语言支持扩展了配置中心的应用范围,标准化协议如OpenTelemetry促进了不同配置中心之间的互操作性。这些发展趋势将推动配置中心向更加智能、灵活、标准化的方向发展。
分析
随着云计算和微服务架构的快速发展,配置中心作为基础设施的重要组成部分,也在不断演进和发展。未来的配置中心将更加智能化、云原生化、标准化,以满足日益复杂的应用需求。
云原生支持是配置中心发展的重要方向。随着Kubernetes等容器编排平台的普及,配置中心需要更好地适应云原生环境。这包括支持Kubernetes的ConfigMap和Secret资源,支持服务网格(Service Mesh)的配置管理,支持云原生应用的动态扩缩容等。云原生支持不仅提高了配置中心的适应性,还简化了在云环境中的部署和管理工作。
智能化管理是配置中心发展的另一个重要趋势。通过引入人工智能和机器学习技术,配置中心可以实现配置的自动优化、问题预测、智能告警等功能。例如,通过分析历史配置数据,可以预测配置变更对系统性能的影响;通过监控配置的使用模式,可以自动优化配置的存储和分发策略;通过智能告警,可以在问题发生前及时发现问题并采取措施。
多语言支持扩展了配置中心的应用范围。传统的配置中心主要支持Java生态,但随着微服务架构的普及,越来越多的应用使用不同的编程语言开发。未来的配置中心需要支持更多的编程语言,如Go、Python、Node.js、.NET等。这种多语言支持不仅提高了配置中心的适用性,还促进了不同技术栈之间的协作。
标准化协议是配置中心发展的重要推动力。随着OpenTelemetry等标准化协议的普及,不同配置中心之间的互操作性将得到改善。标准化协议不仅促进了技术的交流和创新,还降低了用户的技术锁定风险。同时,标准化协议也为配置中心与其他可观测性工具(如链路追踪、指标监控、日志管理)的集成提供了便利。
安全性增强是配置中心发展的永恒主题。随着网络安全威胁的不断增加,配置中心需要提供更强的安全保护。这包括更先进的加密算法、更完善的访问控制、更详细的审计日志等。同时,配置中心还需要支持零信任安全模型,确保在任何网络环境下都能保护配置信息的安全。
性能优化是配置中心发展的重要方向。随着微服务数量的增加和配置复杂度的提高,配置中心需要提供更高的性能和更好的可扩展性。这包括更高效的缓存策略、更智能的负载均衡、更优化的网络传输等。同时,配置中心还需要支持边缘计算场景,在资源受限的环境中提供高效的配置服务。
用户体验优化是配置中心发展的重要方面。未来的配置中心将提供更友好的用户界面、更丰富的可视化功能、更便捷的操作方式。这包括图形化的配置编辑器、可视化的配置依赖关系图、智能的配置推荐功能等。这些改进将大大提高配置管理的效率和用户体验。
总的来说,配置中心的未来发展将更加注重智能化、云原生化、标准化和安全性,以满足日益复杂的应用需求。这些发展趋势将推动配置中心向更加成熟、稳定、易用的方向发展,为微服务架构提供更好的支撑。