什么是Deepstream.io

时间:2016-09-22 12:53:05

标签: deepstream.io

我一直在阅读Deepstream&对于实时应用程序来说,它似乎是一个很棒的解决方案。然而,我对Deepstream的实际角色感到困惑。

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

我的问题是:

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

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

感谢。

1 个答案:

答案 0 :(得分:10)

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

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

Deepstream提供三个核心概念:

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

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

  • 请求 - 回复:问题/答案工作流程

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

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

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

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

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

integration

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