Matrix Synapse、Dendrite 與 Conduit:輕量級伺服器比較

選擇 Matrix 伺服器的關鍵不在於找到二進位檔案最小的伺服器,而是權衡你能接受的運維方面的不足。 Synapse、Dendrite 和 Conduit 都支援 Matrix,但它們在成熟度、實作語言、資料庫模型、擴充路徑以及管理員應承擔的相容性風險方面各不相同。截至 2026 年 10 月 5 日,官方 Matrix 伺服器目錄將Synapse 列為穩定版,而將Dendrite 和 Conduit 列為 Beta 版。這種成熟度上的差異比籠統地宣稱某個選項「輕量級」更有說服力。

本次實用性比較著重於目前已有文件記錄且可驗證的內容。它並未評出通用的記憶體或CPU優劣,因為這些項目並未發布一個能夠公平地代表三者在相同用戶、房間、聯盟流量、媒體負載、資料庫調優和硬體條件下的單一受控基準測試。

桌面顯示器以三列形式比較展示了 Matrix Synapse、Dendrite 和 Conduit,對比內容包括實作語言、成熟度、資料庫方案以及擴充或部署重點。
Synapse、Dendrite 和 Conduit 雖然都是 Matrix 主伺服器,但它們在成熟度、儲存和部署方面採取了不同的方法。

快速比較:哪台伺服器適合哪項任務?

伺服器官方成熟度執行典型儲存路徑實用合身
突觸穩定的目前程式碼庫使用 Python,並包含 Rust 元件。PostgreSQL 推薦用於生產環境;SQLite 雖然存在,但官方文件稱其僅用於測試。當相容性、文件、整合和經過驗證的擴展路徑至關重要時,這是最佳預設選項。
樹突Beta去PostgreSQL 在文件中記錄的 Docker 部署中如果您需要一台基於 Go 的家庭伺服器,並且可以接受其 beta 版本的不成熟度,那麼值得考慮一下。
導管Beta鏽RocksDB 或 SQLite 是其部署文件建議使用的資料庫。對於小型、簡單的安裝項目來說,如果營運成本低且可以接受功能缺失,那麼這款產品就很有吸引力。

來源檢查:請參閱Matrix homeserver 官方目錄、Synapse 安裝文件、Dendrite Docker 安裝文件和Conduit 通用部署文件。

對 Matrix 家庭伺服器來說,「輕量級」究竟意味著什麼?

「輕量級」至少可以指四個面向:空閒記憶體使用率、同步和聯盟期間的 CPU 消耗、儲存成長,以及管理員必須運行的支援服務數量。這些指標可能會指向不同的贏家。一台只加入幾個私人房間的單一使用者家庭伺服器,與一台加入大型公共房間、橋接多個網路、儲存多年媒體資料或積極參與聯盟的伺服器,其效能截然不同。

因此,除非有與您的部署相符的可複現基準測試支持,否則應將資源聲明視為與工作負載相關的。最有效的做法是先定義預期工作負載:本地用戶數量、計劃加入的最大會議室數量、是否啟用聯盟、是否需要網橋或應用服務、預期媒體容量以及是否需要高可用性。

Synapse:相容性至上的安全之選

如果您需要最廣泛的運行記錄,Synapse 仍然是一個穩健的選擇。 Matrix.org 將其描述為穩定版,而 Element 則積極維護當前的程式碼庫。截至撰寫本文時,GitHub 上最新的穩定版本是Synapse 1.162.0,發佈於 2026 年 9 月 29 日。您可以在Synapse 官方發布頁面查看當前版本。

Synapse 常被描述為“佔用資源較多”,但這需要具體情況具體分析。該項目特意將快取保存在記憶體中以提升請求效能。其管理員常見問題明確指出,該架構可能非常消耗記憶體。安裝指南也建議,如果要加入大型公共聊天室,至少需要 1 GB 的可用記憶體。這只是一個便於規劃的最低配置要求,並非每個小型私有部署的必要條件。

資料庫和擴展模型

Synapse 可以先使用 SQLite,但官方安裝文件指出,幾乎所有安裝都應該使用 PostgreSQL,且 SQLite 不應該用於生產伺服器。這一點很重要,因為一旦 Synapse 被正確部署用於長期使用,其「易於使用的單一檔案資料庫」的優勢就會大大降低。

Synapse 在三者中擁有最清晰明確的橫向擴充路徑文件。小型部署可以以單體架構運作;大型部署可以將工作分配到多個稱為工作進程的進程。目前的Synapse 工作進程文件解釋說,工作進程部署共用 PostgreSQL,並且可以將客戶端和聯合工作負載分配到各個進程中。這增加了維運的複雜性,但當單一進程無法滿足需求時,它提供了一條明確的擴展路徑。

選擇 Synapse 時

  • 你需要選擇比較中最成熟的方案。
  • 您預計會使用橋接器、應用服務、管理工具或不太常用的 Matrix 功能,並希望最大限度地減少相容性的意外情況。
  • 您願意在生產環境中執行 PostgreSQL。
  • 您最終可能需要基於工作節點的擴充。

操作:如果資源佔用是您拒絕 Synapse 的唯一原因,請在實際工作負載下使用 PostgreSQL 進行測試,然後再斷定其資源佔用過高。僅憑空閒記憶體並不能準確反映聯邦性能或大型機房的運作。

Dendrite:一個基於 Go 語言的替代方案,目前仍處於 Beta 測試階段。

Dendrite 是用 Go 語言寫的第二代 Matrix 主伺服器。舊的 matrix-org 程式碼庫已於 2024 年 11 月歸檔,但這並不意味著Dendrite 就此消失。開發工作已轉移到Element Dendrite 程式碼庫,目前仍然活躍。官方的 Matrix 伺服器目錄仍然將 Dendrite 標記為 Beta。

區分這一點很重要,因為舊文章可能會給讀者造成兩種截然相反的誤解:要麼認為 Dendrite 已被放棄,要麼認為它已經取代了 Synapse。截至 2026 年 10 月,這兩種說法都不準確。 Dendrite 仍在維護中,但其官方成熟度仍處於 Beta 階段。

部署和資料庫注意事項

Dendrite 的 Docker Compose 文件路徑使用 PostgreSQL 作為依賴項,並以單體架構運行主伺服器。這使得基本的生產級架構易於理解:反向代理、Dendrite、PostgreSQL 以及常用的 Matrix DNS/TLS 設定。

Dendrite 的 Go 實作對那些偏好編譯後的二進位檔案和 Go 作業系統生態系統的管理員來說很有吸引力。然而,語言的選擇本身並不能證明實際資源消耗較低。聯邦狀態解析、房間大小、媒體、資料庫行為和客戶端同步模式仍然是許多 Matrix 工作負載的主要消耗因素。

在本次評測中,Dendrite 官方版本清單中顯示的最新版本為 0.15.2。0.15 系列修復了 Room 版本 12 的相關問題以及一些穩定性問題,同時也提醒我們,測試版軟體的更新迭代速度很快。升級或部署前,請務必查看Dendrite 的官方版本。

選擇樹突

  • 您特別想執行一個基於 Go 的 Matrix homeserver。
  • 您能夠自信地在提交之前驗證客戶端、聯盟、橋接器和管理工具的行為。
  • 你可以容忍 Beta 版的不成熟程度,以換取不同的實作架構。

操作:使用您計劃使用的所有用戶端和應用程式服務來部署 Dendrite。功能清單比空泛的「比 Synapse 更輕量級」的說法更有用。

Conduit:一個基於 Rust 的、面向小範圍部署的簡單方案

Conduit 是一個基於 Rust 的 Matrix 家庭伺服器,其目標是高效、易於設置,即使在 Raspberry Pi 等小型電腦上也能流暢運作。該專案在其官方 GitLab 程式庫中保持活躍,Matrix 生態系統目錄將其標記為 Beta 版。

在三者對比中,Conduit 顯然是最注重「輕量級」的項目,但其文件對功能狀態的描述較為謹慎:雖然大多數 Matrix 房間都能正常工作,但並非所有功能都已實現,用戶可能會遇到 bug。 Conduit 的官方介紹頁面列出了當前的限制,因此管理員應該查看該頁面,而不是依賴舊的功能矩陣。

儲存和營運空間

Conduit 的通用部署文件目前建議使用 RocksDB 或 SQLite。這與 Synapse 以 PostgreSQL 為中心的生產環境指南以及已記錄的 Dendrite Docker 設定方案有顯著差異。對於小型伺服器而言,避免使用單獨的 PostgreSQL 服務可以減少需要維護、備份、監控和更新的元件數量。

Conduit 也為在反向代理程式後部署簡單的 systemd 提供了原生指南,並支援 Docker 映像。其文件涵蓋了聯合、委託、TURN 和應用程式服務等內容。因此,對於家庭用戶、小型團隊、實驗室或業餘愛好者伺服器而言,Conduit 是一個不錯的選擇,因為在這些場景下,簡潔性比生態系統的全面覆蓋更為重要。

選擇導管

  • 您的首要任務是實現緊湊、簡單的自架部署。
  • 你想要使用 Rust 語言和嵌入式資料庫,而不是維護 PostgreSQL。
  • 您已檢查了記錄在案的缺失功能,並確認它們不會妨礙您的預期用途。
  • 在依賴伺服器進行關鍵通訊之前,您可以測試聯合身份驗證和應用服務。

行動:請閱讀 Conduit 官方介紹中的當前限制,並在將真實用戶遷移到聯盟房間之前測試您最大的聯盟房間。聯盟行為最有可能挑戰「小型伺服器」的假設。

功能成熟度比閒置記憶體更重要

如果您選擇用於生產環境,成熟度標籤可以作為有用的初步篩選條件。突觸(Synapse)為穩定型;樹突(Dendrite)和導管(Conduit)為測試型。測試型並不代表無法使用,穩定型也不代表資源消耗為零。它指的是風險狀況有所不同。

輕量級伺服器如果缺少某些必要功能,可能會比功能更強大但運行更穩定的伺服器耗費管理員更多時間。例如,橋接行為、應用程式服務、帳戶管理、新版會議室、聯盟邊緣情況、審核工作流程以及升級工具等。這些都是工作負載和整合問題,而非程式語言問題。

實用決策清單

  • 如果您的首要考慮因素是成熟的兼容性和成熟的橫向擴展路徑,請選擇 Synapse 。
  • 如果您更喜歡 Go 語言,並且準備好運行基於 PostgreSQL 的 beta 版 homeserver,請評估 Dendrite 。
  • 如果一個簡單的 Rust 伺服器(使用 RocksDB 或 SQLite)對您有吸引力,並且其文件中記錄的功能缺陷可以接受,那麼請評估 Conduit 。
  • 不要僅根據空閒記憶體進行選擇。測試房間加入、初始同步、聯盟追趕、媒體以及您實際使用的網橋。
  • 衡量儲存成長。即使 CPU 和記憶體看起來充足,大型機房和媒體檔案也可能導致磁碟使用率成為更大的瓶頸。
  • 遷移前請做好備份計畫。 Matrix伺服器名稱會成為使用者 ID 和房間識別的一部分,因此替換主伺服器與替換無狀態 Web 服務並不相同。

結論

對於大多數希望最大限度降低協定和整合風險的管理員來說,Synapse 仍然是預設推薦方案。它是官方 Matrix 目錄中這三個方案中唯一的穩定版本,擁有豐富的文件、PostgreSQL 生產環境指南以及針對大型部署的完善工作節點架構文件。

Dendrite是一種折衷方案:它是一個維護良好的 Go 實現,架構吸引人,但目前仍處於 Beta 測試階段。最好將其視為針對您特定客戶和整合進行驗證的工具,而不是一個可直接替換的「輕量級 Synapse」。

如果「輕量級」指的是更少的支援服務和更小的自架佔用空間,那麼Conduit無疑是最佳選擇。其 RocksDB/SQLite 部署模型和 Rust 實作對小型系統極具吸引力,但由於目前仍處於 Beta 測試階段,且文件中也列出了一些缺失的功能,因此相容性測試至關重要。

在所有 Matrix 工作負載中,記憶體、CPU 或磁碟方面並沒有公認的萬能最佳方案。實際的最佳方案是:在滿足您所需功能集的同時,盡可能減少您能夠可靠維護的維運資源佔用。

留下評論

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。

用於追蹤效能的 6 款最佳網路管理工具

用於追蹤效能的 6 款最佳網路管理工具

比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。

Ping 監控:7 款免費開源的網路可用性工具

Ping 監控:7 款免費開源的網路可用性工具

比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。

網路中的服務品質 (QoS):服務品質的角色和工作原理

網路中的服務品質 (QoS):服務品質的角色和工作原理

了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。

最佳SFTP伺服器軟體,實現安全檔案傳輸

最佳SFTP伺服器軟體,實現安全檔案傳輸

比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。

適用於網路團隊的 7 款最佳 IP 位址管理工具

適用於網路團隊的 7 款最佳 IP 位址管理工具

比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。

網路監控最佳實務:監控哪些內容以及使用哪些工具

網路監控最佳實務:監控哪些內容以及使用哪些工具

建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。

如何使用 Nmap 進行路由追蹤並讀取網路路徑

如何使用 Nmap 進行路由追蹤並讀取網路路徑

使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。