新伺服器旨在實現高效率、可靠性和可擴展性。 Dendrite 的效能優於 Synapse,運行所需的記憶體顯著減少,並且可以透過跨多個節點的負載平衡進行擴展。 Dendrite 架構支援水平擴展,並基於微服務形式的處理程序分離,其中每個微服務實例在資料庫中都有自己的表。 負載平衡器將呼叫分派給微服務。 為了並行化程式碼中的操作,使用了執行緒(go 例程),它允許您使用所有 CPU 核心的資源,而無需將它們劃分為單獨的進程。
Dendrite 支援兩種模式:單片模式和多片模式。 在單體模式下,所有微服務都打包在單一執行檔中,在單一進程中執行,並直接相互互動。 在多組件(叢集)模式下,微服務可以單獨啟動,包括分佈在不同節點上。 中組件的交互
多組件模式是使用內部HTTP API和平台進行的
開發是基於 Matrix 協定規格並使用兩個測試套件進行的 - Synapse 通用的測試
Beta 測試階段表明 Dendrite 已準備好進行初始實施並過渡到開發,並定期形成新版本。 在版本之間,資料庫中的資料儲存方案現在將被更新(與從儲存庫安裝切片不同,更新後資料庫的內容不會遺失)。 破壞向後相容性、更改資料庫結構或需要更改配置的變更將僅在主要版本中提供。 目前建議將 Dendrite 以整體模式與 PostgreSQL DBMS 結合使用,以建立小型家庭伺服器和 P2P 節點。 由於處理並發操作的問題尚未解決,因此尚不建議使用 SQLite。
Dendrite 中尚未實現的功能包括訊息接收確認、已讀標記、推播通知、OpenID、電子郵件綁定、伺服器端搜尋、使用者目錄、使用者忽略清單、建立群組和社群、評估使用者線上狀態、訪客輸入、與第三方網路的互動。
可供使用的有聊天室的基本功能(創建、邀請、身份驗證規則)、房間中參與者的聯合方式、離線返回後的事件同步、帳戶、個人資料、撥號指示、下載和上傳文件(媒體API )、編輯訊息、ACL、標籤綁定以及使用裝置和金鑰清單進行端對端加密。
讓我們回想一下,組織去中心化通訊的平台 Matrix 使用 HTTPS+JSON 作為傳輸,能夠使用 WebSockets 或基於
整個網路不存在單點故障或訊息控制。 討論中涉及的所有伺服器都是平等的。
任何用戶都可以運行自己的伺服器並將其連接到公共網路。 可以創建
組織電話會議、進行語音和視訊通話。 它還支援輸入通知、用戶線上狀態評估、閱讀確認、推播通知、伺服器端搜尋、歷史記錄和用戶端狀態同步等進階功能。
來源: opennet.ru