flink 官方提供兩種創建項目的方式, maven 和 gradle ,同時也提供快速構建項目模板的腳本和命令腳本,但這種方式需要自行修改項目 groupId 和 ArtifactId ,因此,建議使用 idea IDE 創建項目工程,省時省心。
環境要求
開發 flink 程序,官方有個環境配置最低要求:
# 基于mavenmaven 3.0.4 java 8.x # gradlegradle 3.x java 8.x
基于mvn創建項目
mvn 算是 java 包管理的老牌, idea 中默認內置maven插件,我們只需要選擇創建的項目類型是基于 maven 類別即可:
首先,創建一個新項目: Create New Project
下一步,選擇 maven 項目,并且勾選: Create from archetype 選項(目的是使用 flink 官方提供的項目模板快速生成項目結構)
如果是第一次創建項目,那么則需要添加一個新的模板文件,請選擇: Add Archetype 按鈕,并把官方提供的模板內容填寫完整:
這里需要注意的是 Version 字段,請確認你開發時的 flink 版本和你運行的環境版本是一致的,以免帶來不必要的麻煩。
比如:公司的 flink 集群是是基于 1.7.0 版本,而你是基于 1.10.0 開發的代碼,那么最終上線肯定會遇到兼容性問題的,所以請注意。
添加好官方的模板后,我們便可以在以下的列表中選擇基于該模板來創建項目基本結構:
下一步,配置項目名稱,并且取一個唯一的 groupId 名稱:
最后,直接下一步選擇默認操作完成即可。整個項目目錄結構創建完成,如下:
官方默認的會提供兩份模板代碼文件: BatchJob 和 StreamingJob 模板文件:
BatchJob: 離線批處理文件StreamingJob: 實時計算處理代碼
項目結構升級
當我們基于官方項目模板創建好基礎目錄結構后,我們還需要對項目結構做一下升級,需要把項目的配置文件按運行環境做一下區分,比如開發環境和線上環境使用的使用不同的配置文件,這里我們基于項目的 resoures/ 目錄來實現:
# resoures 目錄.├── env│ ├── config.dev.properties│ └── config.prod.properties└── config.properties
我們創建了一個 config.properties 文件來配置項目的常用配置數據,如, kafaka 、 redis 等連接配置等。
然后創建一個 env 子目錄,并創建兩個環境對應的配置文件,我們希望不同的環境當中使用不同的配置。當然,光是創建這些文件,是無法讓文件實現自動按照運行環境自動實現文件匹配的,我們還需要配置 pom.xml 文件:
首先,找到 <build> 配置字段,添加文件路徑:
<build> <!-- Loading all ${} --> <filters> <filter>src/main/resources/env/config.${env}.properties</filter> </filters> <!-- Map ${} into resources --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>*.properties</include> </includes> </resource> </resources> <!-- 省略之后若干行 --></build>
上述代碼目的是告訴構建工具,在構建的時候需要加載 resoures 目錄的配置文件參與構建,并且使用 ${env} 環境變量來決定具體加載的名稱。
因此,我們還需要指定 ${env} 的環境變量配置,在 <profiles> 標簽下,移除默認的 <profile> 配置內容,新建兩份環境配置 dev 和 prod 的 profile 文件配置:
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <!-- 省略若干 --> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> <!-- 省略若干 --> </profile></profiles>復制代碼
如此,當我們運行項目時,可以根據不同的環境選擇不同的配置文件,以保證開發和線上環境徹底分開,當然你也可以舉一反三的創建測試環境、預上線環境等等。
如何運行?
有了上述環境配置之后,那么如果根據不同環境試運行呢?
一種是基于 idea IDE編輯器:
比較常用的方式,直接在右側 maven 菜單,選擇不同的環境配置 → 然后運行即可:
第二種,命令行工具:
使用命令行方式,在代碼編譯上線自動化部署時比較常用,直接傳參即可:
mvn -Pprod復制代碼
到此為止,整個項目目錄創建內容工作結束。感謝大家的閱讀,我是:猿謀人,和大家一起盤代碼。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。