什么是 Deepstream.io

What is Deepstream.io

我一直在阅读有关 Deepstream 的文章,它似乎是实时应用程序的绝佳解决方案。然而,我很困惑,Deepstream 的实际角色是什么。

核心功能(数据同步、记录、身份验证、权限、事件、rpc 等)的文档写得非常好,只是级别较低。我认为缺少对应该使用 Deepstream 的内容的高级解释。

我的问题是:

希望详细解释开发人员应如何区分 Deepstream 以及有关如何将 Deepstream 纳入我们的应用程序的任何方向。

谢谢。

Deepstream 是一个独立的服务器,安装方式与例如Nginx 或任何数据库。大多数 Linux 发行版以及 Windows 和 MacOS 可执行文件都可以通过 yum/apt 使用。

Deepstream 服务器通过 TCP 和 WebSocket 接受客户端连接。客户端可以通过目前完全适用于 JS/Node & Java/Android 和 partially/soon 的 SDK 连接到它,适用于 IOs(Obj C/Swift), Python 和.NET.

Deepstream 提供了三个核心概念:

  • 数据同步: 有状态和持久的 JSON 可以整体或部分操作并在所有对象之间同步的对象 连接的客户端

  • Pub-Sub: 基于主题订阅的多对多消息传递

  • 请求-响应: Question/Answer 工作流

服务器本身是可配置的,并使用权限文件来验证传入的消息,但除此之外不包含任何逻辑。所有逻辑均由“客户端”提供,“客户端”可以是后端进程,也可以是最终用户。 Deepstream 提供了许多功能,例如监听和主动订阅以挂钩用户请求的内容和 provide/transform 相应的数据,以及集成和检索来自第三方组件或 API 的数据。

这使得 deepstream 既可用作 mobile/browser 和桌面客户端的实时服务器,又可用作微服务架构的 backbone

Deepstream 可以选择与三种类型的系统集成:

  • 数据库可用于长期数据存储和查询
  • 缓存可用于快速短期数据访问
  • Message 总线可用于多个 deepstream 节点相互通信

连接器可用于许多流行的系统,例如RethinkDB、MongoDB、Redis、AMQP、Kafka 或 ElasticSearch 也可以很容易地自己编写。该动画旨在展示 deepstream 如何与其他系统交互

如果未指定外部系统,deepstream 将运行作为单个节点并将数据存储在内存中,但不会将其持久化到磁盘。