Pulsar Connector 预览篇
作者 | tuteng
编辑 | Irene + Anonymitaet
阅读本文需要约 3 分钟。
前言
Apache Pulsar 是分布式发布订阅消息系统。优秀的消息系统应该具备完整的周边生态(包括数据库、缓存或其他系统等),与周边生态的集成是检验消息系统的一个重要指标。
虽然用户可以使用 Pulsar 消费者和生产者 API 编写代码(例如,从数据库同步数据时,先查询数据,再使用 Pulsar 的 API 将数据发布至 Pulsar),但这种方法耗时费力。因此,Pulsar 提出了 Connector (也称为 Pulsar IO),用于解决 Pulsar 与周边系统的集成问题,帮助用户高效完成工作。
Connector 架构
这张图非常直观地描述了 Pulsar IO 的组成。
Pulsar IO 分为输入(Input)和输出(Output)两个模块。
输入:代表数据从哪里来,通过 Source 实现数据输入。数据的来源可以是数据库(例如 MySQL、Oracle、MongoDB)、文件、日志或自定义系统等。
输出:代表数据往哪里去,通过 Sink 实现数据输出。数据的输出可以是数据仓库、数据库等。
当前 Pulsar 支持的 Connector
当前 Apache Pulsar 支持很多 Connector,以下是相关简介:
source
Alibaba Canal CDC Source(https://github.com/alibaba/canal):从 Canal 同步 MySQL 数据到 Pulsar
Apache Kafka Source(https://kafka.apache.org/):从 Kafka 同步数据到 Pulsar ,或者从 Pulsar 同步数据到 Kafka
Debezium Source(https://debezium.io/):从 Debezium 同步数据到 Pulsar,当前支持 MySQL 和 PostgreSQL
Elastic Beat Source(https://github.com/streamnative/pulsar-beat-ouput):从 Elastic Beat 搜集日志数据同步到 Pulsar
Flume Source(https://github.com/streamnative/pulsar-flume-ng-sink):从 Flume 搜集日志数据并同步到 Pulsar
RabbitMQ Source(https://www.rabbitmq.com/):从 RabbitMQ 同步数据到 Pulsar
TCP/UDP with Netty Source(https://netty.io/):从 Netty 同步数据到 Pulsar
File Source(https://github.com/apache/pulsar/blob/master/pulsar-io/file):从文件同步数据到 Pulsar
Sink
Aerospike Sink(https://www.aerospike.com/):从 Pulsar 同步数据到 Aerospike
Apache Cassandra Sink(https://cassandra.apache.org/):从 Pulsar 同步数据到 Cassandra
Apache HDFS v2 Sink(https://hadoop.apache.org/):从 Pulsar 同步数据到 HDFS
Apache HDFS v3 Sink(https://hadoop.apache.org/):从 Pulsar 同步数据到 HDFS
Apache Kafka Sink(https://kafka.apache.org/):从 Pulsar 同步数据到 Kafka
AWS Kinesis Sink(https://aws.amazon.com/cn/kinesis/):从 Pulsar 同步数据到 Kinesis
Elastic Search Sink(https://www.elastic.co/):从 Pulsar 同步数据到 Elastic Search
HBase Sink(https://hbase.apache.org/):从 Pulsar 同步数据到 HBase
InfluxDB Sink(https://www.influxdata.com/):从 Pulsar 同步数据到 InfluxDB
JDBC Sink(https://github.com/apache/pulsar/tree/master/pulsar-io/jdbc):从 Pulsar 同步数据,并通过 JDBC 输出,当前支持输出到 MySQL 和 SQLite
MongoDB Sink(https://www.mongodb.com/):从 Pulsar 同步数据到 MongoDB
RabbitMQ Sink(https://www.rabbitmq.com/):从 Pulsar 同步数据到 RabbitMQ
Redis Sink(https://redis.io/):从 Pulsar 同步数据到 Redis
Solr Sink(http://lucene.apache.org/solr/):从 Pulsar 同步数据到 Solr
Twitter Firehose Sink(https://developer.twitter.com/en/docs):从 Pulsar 同步数据到 Twitter FireHose
以上是一些已有的 Connector,更多 Connector 正在紧张研发中。之后会发布更详细的 Connector 使用教程,敬请期待。
更多关于 Pulsar 的技术干货和产品动态,请关注 ApahcePulsar 微信公众号。