
# RES08-01 减少强依赖项
系统内组件之间强依赖时，一个组件故障会对其他组件造成直接影响，影响系统可用性。
- **风险等级**
  中
  
- **关键策略**
  可以通过以下技术将强依赖项转换为非强依赖项：
  - 提高关键依赖项的冗余级别，降低该关键组件不可用的可能性。
  
  - 与依赖项的通信采用异步消息并支持超时重试，或发布/订阅消息功能将请求与响应分离，以便依赖项从短时故障中恢复。
  
  - 依赖项长时间无法访问时，应用程序应能继续执行其核心功能，以便将局部故障对整体系统功能的影响减到最小。如所依赖的数据丢失时，应用程序仍能运行，但可以提供稍微陈旧的数据、替代数据，甚至没有数据，应用仍处于可预测和可恢复的状态。
  
  - 避免启动依赖及循环依赖。若应用系统由于某些原因导致重启时，若依赖于其他依赖项启动或加载关键配置数据，可能会导致应用系统长时间停在启动状态而无法响应外部消息。针对这种情况，应用系统应该先使用缺省配置启动，再检查依赖项的状态或加载最新配置数据，以恢复正常运行。
   
 
