作者 | tuteng

编辑 | Irene + Anonymitaet

 

阅读本文需要约 3 分钟。

 

Pulsar Connector 预览篇_Apache Pulsar

 

前言

 

Apache Pulsar 是分布式发布订阅消息系统。优秀的消息系统应该具备完整的周边生态(包括数据库、缓存或其他系统等),与周边生态的集成是检验消息系统的一个重要指标。

 

虽然用户可以使用 Pulsar 消费者和生产者 API 编写代码(例如,从数据库同步数据时,先查询数据,再使用 Pulsar 的 API 将数据发布至 Pulsar),但这种方法耗时费力。因此,Pulsar 提出了 Connector (也称为 Pulsar IO),用于解决 Pulsar 与周边系统的集成问题,帮助用户高效完成工作。

 

Connector 架构

 

Pulsar Connector 预览篇_Apache Pulsar_02

这张图非常直观地描述了 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

 

 

Pulsar Connector 预览篇_Pulsar Connector_03