發現服務器設置
這種機制基于客戶端-服務器發現模式,即元流量(域參與者之間用于識別彼此的消息交換)由一個或多個服務器域參與者管理(左圖),而在簡單發現(右圖)中,元流量通過IP多播協議等消息廣播機制進行交換。有一款發現服務器工具可簡化發現服務器的設置和測試。
注意:啟用默認發現服務器機制時,DDS域概念不適用,但在使用ROS2_EASY_MODE時適用。
1. 關鍵概念
在該架構中,有幾個關鍵概念需要理解:
- 發現服務器機制復用RTPS發現消息結構,以及標準的DDS數據寫入器(DataWriters)和數據讀取器(DataReaders)。
- 發現服務器域參與者可以是客戶端或服務器。它們之間的唯一區別在于處理發現流量的方式。用戶流量(即它們創建的數據寫入器和數據讀取器之間的流量)與角色無關。
SERVER
(服務器)是客戶端(可能還有其他服務器)向其發送發現信息的參與者。- 服務器的作用是將其客戶端的發現信息重新分發給已知的客戶端和服務器。
- 服務器還會向已知服務器公告新服務器的存在,反之亦然。這樣,新服務器只需知道網絡中一個現有服務器的存在,就能連接到其他所有現有服務器,從而以最少的配置形成服務器之間的網狀拓撲。
- 重新分發的發現信息可能來自直接連接到該
SERVER
的客戶端,也可能來自正在轉發其客戶端發現數據的其他服務器。 - 已知服務器將接收該服務器已知的直接客戶端的所有信息以及其他服務器的參與者信息(用于公告新服