介绍
Description
当控制器的多个实例运行时,此模块提供高可用性支持。它用于发布和订阅来自多个控制器的更新,并使用ISyncService来存储数据。它通过让所有控制器访问控制器中所有其他模块以有效方式发布的更新来同步控制器之间的状态。此外,它还运行一个领导人选举过程,以使模块能够在运行多个控制器的分布式系统中执行基于角色的编程,并能够相互通信。该模块的主要目的是为能够构建容错系统奠定基础,该容错系统能够检索失败的控制器的状态并将其重新实例化到该状态。
Services Provided
IHAControllerService
IHAWorkerService
Service Dependencies依赖的服务
IFloodlightService
ILinkDiscoveryService
IFloodlightProviderService
ISyncService
ITopologyService
Java File
该模块在net.floodlightcontroller.hasupport中实现。
How it works
- HAcontroller:这是iFloodLight模块,它调用AsyncElection和ControllerLogic线程,这些线程用于获取网络范围的领导者。
- AsyncElection:包含一个在所有活动控制器中选择领导者的领导者选择协议。它使用NetworkNode与其他控制器通信。
- ControllerLogic:用于跟踪从异步选举中获得的领导者,并在没有领导者的情况下启动领导者选举过程。此外,它