10

我一直在阅读有关Deepstream的信息,它似乎是实时应用程序的绝佳解决方案。然而,我对 Deepstream 的实际角色感到困惑。

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

我的问题是:

  • Deepstream 是适用于任何基于实时的应用程序的成熟/独立的后端框架吗?
  • 还是 Deepstream 是一个服务器平台,用于将微服务(和/或主要应用层)的通信(身份验证、路由、缓存、负载平衡)定向到客户端?
  • 还是完全不同的东西?

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

谢谢。

4

1 回答 1

13

Deepstream 是一个独立的服务器,像 Nginx 或任何数据库一样安装。它可以通过 yum/apt 用于大多数 Linux 发行版以及 Windows 和 MacOS 可执行文件。

深度流服务器通过 TCP 和 WebSocket 接受客户端连接。客户端可以通过目前完全可用于 JS/Node 和 Java/Android 并且部分/很快可用于 IO(Obj C/Swift)、Python 和 .NET 的 SDK 连接到它。

Deepstream 提供了三个核心概念:

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

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

  • 请求-响应:问题/回答工作流程

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

这使得 deepstream 既可用作移动/浏览器和桌面客户端的实时服务器,又可用作微服务架构的骨干

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

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

连接器可用于许多流行的系统,例如 RethinkDB、MongoDB、Redis、AMQP、Kafka 或 ElasticSearch,也可以轻松地自己编写。此动画旨在提供有关 deepstream 如何与其他系统交互的印象

一体化

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

于 2016-09-22T14:25:57.107 回答