介绍
我们今天很高兴向您介绍一个新的沃拉鲁功能的预览版本: 连接器。连接器使输入和接收数据从沃拉鲁更容易。
在这篇文章中, 我们将简要介绍一下沃拉鲁是什么, 角色连接器现在作为沃拉鲁的源和汇, 如何开始使用连接器, 并讨论接下来将要发生的事情。
如果您熟悉什么沃拉鲁可以随意跳过下一节。
什么是沃拉鲁?
沃拉鲁是一个框架, 旨在使开发人员能够更轻松地构建和操作以 Python 编写的高性能应用程序。它处理了构建分布式数据处理应用程序的复杂性, 因此您需要担心的是域逻辑。
我们的目标是确保无论数据来自何处, 您都可以水平扩展应用程序逻辑。同时消除分布式应用程序带来的挑战。
源和接收器
在我们继续之前, 我想先说几段术语。
以下是数据如何从外部源通过沃拉鲁移动到外部接收器的高级图表:
有两个术语, 可能是新的你, 我会在这个博客文章中提到相当多。外部源是从外部系统发送沃拉鲁数据的应用程序;这也可以视为输入。外部接收器是应用程序沃拉鲁发送数据或输出。目前, 每个管道都需要一个源和一个接收器。
概述
上个月0.5.3 发布后, 我们发布了新连接器 api 的预览版。在您想编写源代码或接收器之前, 我们没有提供推荐的方法来对沃拉鲁中的数据进行编码/解码。这导致用户需要想出一个协议来序列化他们的数据。
这些新 api 的预览版本包括一个包含一组简单抽象的新 Python 模块。连接器可互换。通过更改连接器, 您可以将数据源从一种类型切换到另一个。您的沃拉鲁应用程序没有任何变化。您甚至可以使用其他 Python 库, 如沃拉鲁应用程序, 您不受限于可以使用的其他库。
每个蓝色正方形是一个单独的操作系统进程
连接器 api 和沃拉鲁不会对与外部数据源进行通信的方式做出任何假设。连接器可在同一台计算机上运行, 也可以在沃拉鲁应用程序中的单独计算机上执行。这是因为连接器是一个单独的 OS 进程, 并通过 TCP 与沃拉鲁通信。
模板和起始点
除了这些新的 api, 我们还编写了一些示例连接器。这些设计用于复制和粘贴为 Python 应用程序, 并像脚本一样启动。您可以从沃拉鲁存储库中使用这些起始点, 或将它们放入您自己的存储库中, 并根据需要进行修改。请查看我们的连接器文档以了解更多。
connector = wallaroo.experimental.SinkConnector(
required_params=[], optional_params=[])
新的 api 包括将附加参数传递给连接器脚本的简单方法。这些可以作为必需的参数或可选参量传入。看到html # 运行-连接器-脚本 “rel =” nofollow “目标 =” _blank “>>” 运行连接器脚本 “有关详细信息。
我们提供的例子有卡夫卡、 Redis、 RabbitMQ、 UDP、 S3和室壁运动。使用这些作为源和接收器的起始点。我们非常感谢您提供的任何反馈, 您的反馈将有助于塑造我们的 api, 我们希望释放这些信息。编写连接器时, 也可以随意使用其他 Python 库。
此外, 我们还有一个 postgresql 模板, 演示如何使用 postgresql LISTEN/NOTIFY
API 将更改事件传递给沃拉鲁。这个模板需要一些更具体的逻辑来工作, 但应该是一个很好的例子, 如何开始。
结论
总结:
- 连接器可以使用其他任何其他 Python 库。
- 连接器是单独的 OS 进程到您的沃拉鲁应用程序。
- 新的 api 在原始 TCP 连接器周围提供了更简单的抽象。
- 数据源和连接器的通信方式取决于您。这可能是 JSON 或自定义协议之类的内容。
我们正在继续开发这些 api, 因此请在接下来的几个版本中查找开发。
如果您有兴趣为新 api 尝试, 请参阅此处的可用示例和我们的连接器文档。
如果您希望第一次开始使用沃拉鲁, 可以通过 docker 安装沃拉鲁:
docker pull \
wallaroo-labs-docker-wallaroolabs.bintray.io/release/wallaroo:latest
可在此处找到其他安装选项。
谢谢我的同事安迪和约翰帮助我提纲和证明-读这篇文章。