新服务器旨在实现高效率、可靠性和可扩展性。 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