- Flink原理深入與編程實戰(zhàn):Scala+Java(微課視頻版)
- 辛立偉編著
- 399字
- 2023-07-17 18:54:43
3.2.1 基于Socket的數據源
DataStream API支持從Socket套接字讀取數據。只需指定要從其中讀取數據的主機和端口號。讀取Socket套接字的數據源函數的定義如下。
(1)socketTextStream(hostName,port):指定主機和端口號。
(2)socketTextStream(hostName,port,delimiter):可指定分隔符。
(3)socketTextStream(hostName,port,delimiter,maxRetry):可指定API應該嘗試獲取數據的最大次數。
【示例3-2】 Socket數據源:流應用程序示例,它接收來自Web套接字的單詞。
Scala代碼如下:

Java實現:

建議按以下步驟執(zhí)行這個流程序。
(1)啟動一個運行在9999端口的netcat服務器。打開一個終端窗口,執(zhí)行的命令如下:

(2)運行上面編寫的流應用程序。
(3)在netcat運行窗口,輸入以下內容,并按Enter鍵:

(4)在程序執(zhí)行窗口,可以看到計算后的輸出如下:

在上面的Java示例代碼中,也可以將map()的邏輯代碼合并到flatMap()函數中,以精簡代碼。修改后的代碼如下:

在前面的Java代碼示例中,向map()和flatMap()傳入的都是匿名內部類。也可以代之以Java 1.8引入的Lambda函數,以簡化代碼的編寫。使用Lambda函數重構的代碼如下:

推薦閱讀
- Effective C#:改善C#代碼的50個有效方法(原書第3版)
- 名師講壇:Java微服務架構實戰(zhàn)(SpringBoot+SpringCloud+Docker+RabbitMQ)
- PySide GUI Application Development(Second Edition)
- Julia高性能科學計算(第2版)
- Nginx Lua開發(fā)實戰(zhàn)
- Solr Cookbook(Third Edition)
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- Greenplum構建實時數據倉庫實踐
- Java Web動態(tài)網站開發(fā)(第2版·微課版)
- 前端架構設計
- Mastering Magento Theme Design
- Java算法從菜鳥到達人
- The Python Apprentice
- Mathematica Data Visualization
- 微信小程序開發(fā)圖解案例教程:附精講視頻(第3版)