Flink流連接器【數據源/接收器】

一.預定義的源和接收器

Flink內置了一些基本數據源和接收器,它們始終可用。該預定義的數據源包括文件,目錄和Socket,並可以加載集合和迭代器的數據。該預定義的數據接收器支持寫入文件,輸出信息和異常。

二.捆綁式連接器

連接器提供用於與各種第三方系統接口的代碼。當前支持以下系統:

  • Apache Kafka(源/接收器)
  • Apache Cassandra(接收器)
  • Amazon Kinesis Streams(源/接收器)
  • Elasticsearch(接收器)
  • Hadoop文件系統(接收器)
  • RabbitMQ(源/接收器)
  • Apache NiFi(源/接收器)
  • Twitter Streaming API(源)
  • Google PubSub(源/接收器)

請記住,要在應用程序中使用這些連接器之一,通常需要其他第三方組件,例如,用於數據存儲或消息隊列的服務器。還請注意,列出的流連接器是Flink項目的一部分,幷包含在源代碼版本中,但它們不包含在二進制發行版中。

三.Apache Bahir中的連接器

通過Apache Bahir發佈了用於Flink的其他流連接器,包括:

  • Apache ActiveMQ(源/接收器)
  • Apache Flume(接收器)
  • Redis(接收器)
  • Akka(接收器)
  • Netty(源)

四.連接到Flink的其他方式

1.通過異步I/O進行數據獲取
使用連接器不是Flink獲取數據和輸出數據的唯一方法。一個常見的模式是查詢外部數據庫或Web服務獲取數據爲一個Map或FlatMap 作爲主要數據流的補充。Flink提供了一個用於異步I/O的API, 以使其更容易有效且強大地完成這種擴充。

2.可查詢狀態
當Flink應用程序將大量數據推送到外部數據存儲時,這可能會成爲I/O瓶頸。如果涉及的數據的讀取次數少於寫入的次數,則更好的方法是讓外部應用程序從Flink中提取所需的數據。在可查詢的狀態界面,允許通過Flink管理的狀態下進行按需查詢。

五.數據源和接收器的容錯保證

Flink的容錯機制在出現故障時恢復程序並繼續執行它們。此類故障包括機器硬件故障,網絡故障,瞬時程序故障等。

僅當源參與快照機制時,Flink才能保證將一次準確的狀態更新爲用戶定義的狀態。下表列出了Flink和捆綁的連接器的狀態更新保證。
在這裏插入圖片描述
爲了保證端到端的一次精確記錄傳遞(除了一次精確的狀態語義),數據接收器需要參與檢查點機制。下表列出了Flink以及捆綁的接收器的交付保證(假設僅一次狀態更新):
在這裏插入圖片描述
備註:

  • exactly ones:精準一次
  • at most ones:最多一次
  • at least ones:最少一次
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章