Apache DolphinScheduler 3.0.0 正式版發佈!

来源:https://www.cnblogs.com/DolphinScheduler/archive/2022/08/11/16575626.html
-Advertisement-
Play Games

​ 點亮 ⭐️ Star · 照亮開源之路 GitHub:https://github.com/apache/dolphinscheduler ​ 版本發佈 2022/8/10 2022 年 8 月 10 日,Apache DolphinScheduler 在經過 3.0.0 alpha、3.0.0 ...


 點亮 ⭐️ Star · 照亮開源之路 GitHub:https://github.com/apache/dolphinscheduler  

版本發佈 2022/8/10

2022 年 8 月 10 日,Apache DolphinScheduler 在經過 3.0.0 alpha、3.0.0-beta-1、3.0.0-beta-2 不斷驗證之後,終於迎來了社區期盼已久的第三個大版本! 3.0.0 正式版本發生了自發版以來的最大幅度變動,新增了眾多全新功能和特性,旨在為用戶帶來全新的體驗和更多價值。   經過迭代的 3.0.0 正式版與此前 3.0.0 alpha 版本更新文中所描述的主要功能和特性更新、優化項和 Bug 修複大致一致,包括“更快、更強、更現代化、更易維護”這四個關鍵詞總結。   對於版本迭代後新增的功能和優化,本文將再做補充。   關鍵詞:更快、更強、更現代化、更易維護 3.0.0 的關鍵字不變,“更快、更強、更現代化、更易維護”的特點相信大家在使用中可以體驗到。
  • 更快:重構了 UI 界面,新 UI 不僅用戶響應速度提高數十倍,開發者構建速度提高數百倍;
  • 更強:帶來了許多振奮人心的新功能,如數據質量保證、自定義時區、新增多個任務支持和多個告警插件;
  • 更現代化:新 UI 除了更快外,大到頁面佈局,細到圖標樣式都更加現代化;
  • 更易維護:後端服務拆分更加符合容器化和微服務化的發展趨勢,還能明確各個服務的職責,讓維護更加簡單。

 

新功能和新特性

前文已有詳細描述的新功能和新特性包括:    

 

3.0.0 最大的變化是引入了新的 UI,切換語言頁面無需重新載入,並且新增了深色主題。新 UI 使用了 Vue3,TSX,Vite 相關技術棧。對比舊版 UI,新 UI 不僅更加現代化,操作也更加人性化,前端的魯棒性也更強,使用戶在編譯時一旦發現代碼中的問題,可以對介面參數進行校驗,從而使前端代碼更加健壯。 此外,新架構和新技術棧不僅能讓用戶在操作 Apache DolphinScheduler 時響應速度有數十倍的提升,同時開發者本地編譯和啟動 UI 的速度有了數百倍的提升,這將大大縮短開發者調試和打包代碼所需的時間。   新 UI 使用體驗: ​本地啟動耗時對比   ​項目管理頁面     ​工作流定義頁面     shell 任務頁面     ​   MySQL 數據源頁面  

 

AWS 支持

隨著 Apache DolphinScheduler 用戶群體越來越豐富,吸引了很多海外用戶。但在海外業務場景下,用戶在調研過程中發現有兩個影響用戶便捷體驗 Apache DolphinScheduler 的點,一個是時區問題,另一個則是對海外雲廠商,尤其是對 AWS 的支持不足。此版本中,我們決定對 AWS 較為重要的組件進行支持,目前已經涵蓋 Amazon EMR 和 Amazon Redshift 兩個 AWS 的任務類型,以及實現了資源中心支持 Amazon S3 存儲。  
  • 針對 Amazon EMR,我們創建了一個新的任務類型,並提供了其 Run Job Flow 的功能,允許用戶向 Amazon EMR 提交多個 steps 作業,並指定使用的資源數量。
  詳情可見:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/task/emr.html   Amazon EMR 任務定義  
  • 對於 Amazon Redshift,我們目前在 SQL 任務類型中擴展了對 Amazon Redshift 數據源的支持,現在用戶可以在 SQL 任務中選擇 Redshift 數據源來運行 Amazon Redshift 任務。
  ​   Amazon Redshift 支持
  • 對於 Amazon S3,我們擴展了 Apache DolphinScheduler 的資源中心,使其不僅能支持本地資源、HDFS 資源存儲,同時支持 Amazon S3 作為資源中心的儲存。詳情可見:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/resource.html 中的 `resource.storage.type`
後續我們將支持更多 AWS 任務,敬請期待。

 

服務拆分

全新的 UI 是 3.0.0 前端的最大變化,而後端最大的變化就是對服務進行拆分。考慮到容器和微服務的概念越來越火熱,Apache DolphinScheduler 開發者做出了重大決定:對後端服務進行拆分。按照職能,我們將服務拆分成了以下幾部分:
  • master-server: master服務
  • worker-server: worker服務
  • api-server: API服務
  • alert-server: 告警服務
  • standalone-server: standalone用於快速體驗 dolphinscheduler 功能
  • ui: UI資源
  • bin: 快速啟動腳本,主要是啟動各個服務的腳本
  • tools: 工具相關腳本,主要包含資料庫創建,更新腳本
  所以的服務都可以通過
`bin/dolphinscheduler-daemon.sh`
的方式進行啟動或者停止。  

數據質量保證

此版本中,用戶們從 2.0.0 開始就期待已久的數據質量保證應用功能上線,解決了從源頭同步的數據條數準確性,單表或多表周均、月均波動超過閾值告警等數據質量問題。Apache DolphinScheduler 此前版本解決了將任務以特定順序和時間運行的問題,但數據運行完之後對數據的質量一直沒有較為通用的衡量標準,用戶需要付出額外的開發成本。   現在,3.0.0 已經實現了數據質量原生支持,用戶可以直接通過配置的方式,輕鬆實現數據質量監控,在保證工作流運行的前提下,保證運行結果的準確性。   ​   ​  

任務組

任務組主要用於控制任務實例併發並明確組內優先順序。用戶在新建任務定義時,可配置當前任務對應的任務組,並配置任務在任務組內運行的優先順序。當任務配置了任務組後,任務的執行除了要滿足上游任務全部成功外,還需要滿足當前任務組正在運行的任務小於資源池的大小。當大於或者等於資源池大小時,任務會進入等待狀態等待下一次檢查。當任務組中多個任務同時進到待運行隊列中時,會先運行優先順序高的任務。 詳見 鏈接:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0/user_doc/guide/resource.html    

 

自定義時區

在 3.0.0 之前版本,Apache DolphinScheduler 預設的時間是 UTC+8 時區,但隨著用戶群體擴大,海外用戶和在海外開展跨時區業務的用戶在使用中經常被時區所困擾。3.0.0 支持時區切換後,失去問題迎刃而解,滿足海外用戶和出海業務伙伴的需求。例如,如當企業業務涉及的時區包含東八區和西五區,想要使用同一個 DolphinScheduler 集群時,可以分別創建多個用戶,每個用戶使用自己當地時區,對應 DolphinScheduler 對象顯示的時間均會切換為對應時區的當地時間,更加符合當地開發者的使用習慣。   詳見 鏈接:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0/user_doc/guide/howto/general-setting.html

 

任務定義列表

使用 Apache DolphinScheduler 3.0.0 此前版本,用戶如果想要操作任務,需要先找到對應的工作流,併在工作流中定位到任務的位置之後才能編輯。然而,當工作流數量變多或單個工作流有較多的任務時,找到對應任務的過程將會變得非常痛苦,這不是 Apache DolphinScheduler 所追求的 easy to use 理念。所以,我們在 3.0.0 中增加了任務定義頁面,讓用戶可以通過任務名稱快速定位到任務,並對任務進行操作,輕鬆實現批量任務變更。 詳見 鏈接:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0/user_doc/guide/project/task-instance.html  

 

新告警類型支持

在 3.0.0 中,告警類型也進行了擴展,我們增加了對 Telegram、Webexteams 告警類型的支持。   ​  

Python API 新功能

3.0.0 中,Python API 最大的變化是將對應的 PythonGatewayServer 集成到了 API-Server 服務, 並將其重命名 PythonGatewayService, 現在用戶在啟動 api-server 時會預設啟動 PythonGatewayService;如果不想要啟動 PythonGatewayService,可以將 application.yaml 中的 python-gateway.enabled 設置成 false。   此外, Python API 還增加了 CLI 和 configuration 模塊。Configuration 模塊允許用戶修改 Python API 預設的配置, 如修改工作流預設的用戶名、worker 分組等內容, 可以通過環境變數、直接修改文件、Python 動態修改來改變值。  
# environment variable
export PYDS_JAVA_GATEWAY_ADDRESS="192.168.1.1"
export PYDS_WORKFLOW_USER="custom-user"
# file change
Directly change ~/pydolphinscheudler/config.yaml
# CLI
pydolphinscheduler config --set java_gateway.address 192.168.1.1
pydolphinscheduler config --set java_gateway.address 192.168.1.1 --set java_gateway.port 25334

 

  目前 CLI 只有 version 和 config 兩個子命令, 用於確認當前版本以及增刪配置文件。後續,我們將引入更加多功能,方便用戶通過命令行操作 DolphinScheduler。  
# version
pydolphinscheduler verison
# 3.0.0
# config
pydolphinscheduler config --get java_gateway.address --get java_gateway.port
# The output look like below:
# java_gateway.address = 127.0.0.1
# java_gateway.port = 25333
pydolphinscheduler config --set java_gateway.address 192.168.1.1 --set java_gateway.port 25334

 

  

  值得註意的是,Python API 還支持新增和上傳資源中心文件功能,方便資源管理;支持同一個 project 不同 workflow 寫入不同名稱;增加集成測試,讓測試更加便捷。  

此前版本未公佈的功能和特性更新

支持 Flink 任務類型

在該版本中,我們擴展了 Flink 任務類型,使其支持運行 Flink SQL 任務,其使用 sql-client.sh 提交任務。在此前的版本中, 我們僅支持通過 flink cli 的方式提交任務, 這種方式需要結合資源中心, 將資源文件提交到資源中心, 然後在任務定義頁面引用改資源, 對於版本化和用戶透明都不是十分友好. 隨著 flink sql 逐漸成為 flink 使用者的主流, 加之直接在編輯頁面寫 sql 更加用戶透明, 我們採納了向社區貢獻的 flink sql 功能. 3.0.0 以後的版本用戶可以更加方便的使用 flink 任務了。 更多詳情查看:[flink sql client](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sqlclient/) 對應 PR:https://github.com/apache/dolphinscheduler/pull/9840      

新增 Zepplin 任務類型

  在該版本中,我們增加了 Zeppelin 任務類型,用於創建並執行 Zeppelin 類型任務。Worker 執行該任務時,會通過 Zeppelin Cient API 觸發 Zeppelin Notebook 段落。   對應PR:https://github.com/apache/dolphinscheduler/pull/9810   ​  

Bash 傳參功能

新版本還新增了通過 bash 傳參的功能,如果你想在下游任務中使用 bash 變數而不是常量值 export 參數,你可以在通過 setValue 和 Bash 變數實現,它更加靈活,可以讓你動態地獲取現有的本地或 HTTP 資源獲取設定變數。 可以使用類似的語法  
lines_num=$(wget https://raw.githubusercontent.com/apache/dolphinscheduler/dev/README.md -q -O - | wc -l | xargs)echo "#{setValue(set_val_var=${lines_num})}"

 

 

允許用戶上傳沒有尾碼的文件

  之前資源中心只能上傳有尾碼的文件,在 3.0.0 版本後,我們支持用戶上傳沒有尾碼的文件。  

 

其他功能增強

除了上述功能新增外,3.0.0 版本還進行了很多細節功能增強,如重構任務插件、數據源插件模塊,讓擴展更簡單;恢復了對 Spark SQL 的支持;E2E 測試已經完美相容新 UI 等。  

 

主要優化項

  • 任務後端插件優化,新插件只需要修改插件自帶的模塊
  • 在工作流下提交/創建 cron 時驗證結束時間和開始時間
  • Dependent 添加依賴時可以選擇全局項目
  • AlertSender 優化及關閉優化,如 MasterServer
  • 增加 slot 條件查詢資料庫, 減少返回數據記錄
  • 通過將 python gatewar 遷移到 apiserver 來精簡 dist 包
  • [python] 將 pythonGatewayServer 遷移到 api 伺服器
  • [python] 添加缺失的配置和連接遠程伺服器文檔
  • [Master/Worker] 將任務 ack 更改為運行回調
  • [Master] 添加任務事件線程池
 

 

主要 Bug 修複

  • 修複使用 S3a Minio 創建租戶失敗的問題
  • 修複文本文件 busy 的問題
  • 修複項目授權時生成一個重覆授權項目的問題
  • 修複因無法連接到 postgresql 而啟動伺服器失敗的問題
  • 修複消息顯示找不到數據源插件“Spark”的問題
  • 修複 MapReduce 生成的命令內置參數位置錯誤的問題
  • 解決更改參數用戶,隊列在 ProcessDefinition 中失效的問題
  • 解決使用依賴組件的進程無法在測試和生產環境之間遷移
  • 解決了資源文件刪除條件的問題
  • 修複編輯複製節點的表單時影響原始節點數據的問題
  • 解決了 Worker 資源耗盡並導致停機的問題
  • 解決了某些類型的警報無法顯示項目名稱的問題
  • 3.0.0 各個部署方式出現的問題
  • 任務組為空時頁面報錯問題
  • treemap 視圖深度錯誤問題
  • 告警信息不明確問題:告警組為空時報錯信息不明確,批量刪除工作流有異常時報錯信息不明確,租戶內容錯長的錯誤提示,刪除
  • 參數校驗問題:數據源中心的參數校驗問題,修改密碼時密碼不一致提示,發告警前校驗 alert scriptb
  • Python api:不能設置 release state 問題,本地參數有值但是校驗失敗問題
  • token 查詢不遵循時區問題
  • 修複 HTTPS 和 HTTP 字元串識別問題
  • 修複 alert server 健康監測失效問題
  • 修複 condition 任務分支失敗問題
  • 修複 docker 鏡像不支持多平臺問題
  • 修複帶有任務組優先順序的工作流創建時不能正確寫資料庫的問題
  • master 任務的失效問題
  • 修複串列等待不運行的問題
  • 時區問題:調度時區錯誤問題,日誌增加時區支持
  • 重新運行、暫停工作流實例失敗問題
  • 資源中心實例化失敗問題
  • 修複郵件告警模板分隔線問題
  • 修複Standalone模式下數據初始化問題
  • 修複監控中心DB不存在時的頁面展示問題
  • 修複創建工作流參數無效問題
  • 修複K8S部署時zookeeper埠異常問題
  • 修複Standalone模式下服務啟動失敗問題
  • 修複LDAP登錄失敗問題
  • Python api: 修複同一個項目下不同工作流的任務組件名稱不支持重名問題
  • Python api: 修複SQL任務組件SQL類型錯誤問題
  • 修複資源文件重命名錶單異常問題
  • 修複根據定時設置獲取工作流可執行時間錯誤問題
  • 升級了Logback、Log4j等模塊依賴
  • 修複任務失敗問題
  • 修複好HDFS NPE 問題
  • 修複任務組異常導致master死鎖問題
  • 修複一些列穩定性問題
 

文檔修改

  • 更正部署文檔
  • 修複、更新部分使用文檔:WebexTeams 中文文檔,本地參數、全局參數文檔,Kubernetes FAQ 文檔,Spark 註意事項文檔,DataX 使用文檔,刪除 Flink API 文檔,修複 open-api 的錯誤,修複數據質量中的錯誤文檔;新增 stand-alone 切換資料庫文檔;新增 shell 中判斷 Yarn 運行狀態文檔;新增更新系統截圖; 參數傳遞、全局參數、參數優先順序文檔,告警組件嚮導、Telegram、釘釘告警文檔,告警FAQ文檔,Shell組件文檔,Switch任務組件文檔,資源中心配置詳情文檔,工作流定義補數文檔
  • 更正部分開發文檔:明確支持的操作系統,修複開發環境搭建文檔,新增自己構建 docker 鏡像文檔
 

 

Release note

GitHub: https://github.com/apache/dolphinscheduler/releases/tag/3.0.0   下載:https://dolphinscheduler.apache.org/en-us/download/download.html  

 

感謝貢獻者

Aaron Lin、Amy0104、Assert、BaoLiang、Benedict Jin、BenjaminWenqiYu、Brennan Fox、Dannila、Desperado2、Devosend、DingPengfei、DuChaoJiaYou、EdwardYang、Eric Gao、Frank Chen、GaoTianDuo、HanayoZz、HeChuan、HomminLee、Hua Jiang、Hwting、Ivan0626、Jeff Zhan、Jiajie Zhong、JieguangZhou、Jiezhi.G、JinYong Li、J·Y、Kerwin、Kevin.Shin、KingsleyY、Kirs、KyoYang、LinKai、LiuBodong、LongJGun、Luke Yan、Lyle Shaw、Manhua、Martin Huang、Maxwell、Molin Wang、Mr.An、OS、PJ Fanning、Paul Zhang、QuakeWang、ReonYu、SbloodyS、Sheldon、Shiwen Cheng、ShuiMuNianHuaLP、ShuoTiann、SongTao Zhuang、Stalary、Sunny Lei、Tom、Town、Tq、WangJPLeo、Wenjun Ruan、X&Z、XiaochenNan、Yanbin Lin、Yao WANG、Yiming Guo、Zonglei Dong、aCodingAddict、aaronlinv、aiwenmo、caishunfeng、calvin、calvinit、cheney、chouc、chuxing、czeming、devosend、exmy、gaojun2048、guodong、guoshupei、hjli、hstdream、huangxiaohai、janeHe13、jegger、jiachuan.zhu、jon-qj、juzimao、kezhenxu94、labbomb、leiwingqueen、lgcareer、lhjzmn、lidongdai、lifeng、lilyzhou、litiliu、liubo1990、liudi1184、longtb、lvshaokang、lyq、mans2singh、mask、mazhong、mgduoduo、myangle1120、naziD、nobolity、ououtt、ouyangyewei、pinkhello、qianli2022、qinchaofeng、rickchengx、rockfang、ronyang1985、seagle、shuai hou、simsicon、sneh-wha、songjianet、sparklezzz、springmonster、sq-q、syyangs799、uh001、wangbowen、wangqiang、wangxj3、wangyang、wangyizhi、wind、worry、wqxs、xiangzihao、xiaodi wang、xiaoguaiguai、xuhhui、yangyunxi、yc322、yihong、yimaixinchen、youzipi、zchong、zekai-li、zhang、zhangxinruu、zhanqian、zhuxt2015、zixi0825、zwZjut、天仇、小張、弘樹丶、張俊傑、旭旭同學、時光、旺陽、王強、百歲、秋天、羅銘濤、阿福Chris、陳家名、陳爽、飛俠美如畫  

參與貢獻

  隨著國內開源的迅猛崛起,Apache DolphinScheduler 社區迎來蓬勃發展,為了做更好用、易用的調度,真誠歡迎熱愛開源的伙伴加入到開源社區中來,為中國開源崛起獻上一份自己的力量,讓本土開源走向全球。   參與 DolphinScheduler 社區有非常多的參與貢獻的方式,包括:   ​     貢獻第一個PR(文檔、代碼) 我們也希望是簡單的,第一個PR用於熟悉提交的流程和社區協作以及感受社區的友好度。   社區彙總了以下適合新手的問題列表:https://github.com/apache/dolphinscheduler/issues/5689   非新手問題列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22   如何參與貢獻鏈接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html   來吧,DolphinScheduler開源社區需要您的參與,為中國開源崛起添磚加瓦吧,哪怕只是小小的一塊瓦,匯聚起來的力量也是巨大的。   參與開源可以近距離與各路高手切磋,迅速提升自己的技能,如果您想參與貢獻,我們有個貢獻者種子孵化群(Leonard-ds) ,手把手教會您( 貢獻者不分水平高低,有問必答,關鍵是有一顆願意貢獻的心 )。   添加小助手時請說明想參與貢獻。   來吧,開源社區非常期待您的參與。   活動推薦   Apache DolphinScheduler社區8月聯合了Apache Kylin社區,共同舉辦Meetup主題為《大數據底座的構建與展望,助力企業數字化轉型》即將重磅開啟!我們也有幸邀請到了來自伊利、T3出行、白鯨開源、Apache Kylin社區等企業的資深大數據工程師與開發者,從數據分析引擎、數據調度、數字化轉型、維護開源視角等話題探討在兩個開源項目的開發實踐。  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 老闆加薪!看我做的WPF Loading!!! 控制項名:RingLoading 作者:WPFDevelopersOrg 原文鏈接: https://github.com/WPFDevelopersOrg/WPFDevelopers 框架使用大於等於.NET40; Visual Studio 2022 ...
  • 基於.NetCore的積木化服務框架(Gitee地址),主要將常規解決方案進行進一步的抽象下沉形成相關基礎可選框架單元(在Framework 目錄),併在此基礎上實現常規系統模塊(在Modules 目錄),如用戶管理,許可權管理等。 當前項目,目的是為了提供一個思路,而不是模板。除了 Framewor ...
  • 此案例是《.Net WebView2 項目,實現 嵌入 WEB 頁面 Chromium內核》文的續集。 主要是針對WebView2的一些微軟自己封裝的不熟悉的API,有一些人已經對 PuppeteerSharp很熟悉了,那麼,直接用 PuppeteerSharp的話,那就降低了學習成本,那還是很有必 ...
  • 1.避免Scoped模式註冊的服務變成Singleton模式 當提供一個生命周期模式為Singleton的服務實例時,如果發現該服務中還依賴生命周期模式為Scoped的服務實例(Scoped服務實例將被一個Singleton服務實例所引用),那麼這個被依賴的Scoped服務實例最終會成為一個Sing ...
  • 作為一個沒有系統學習過依賴註入的開發者而言,如果直接在一個使用依賴註入的框架下進行開發,往往對於依賴註入的存在是沒有明顯的察覺,通過代碼追根溯源你都會看不出對象是從哪裡創建的。但這並不影響你進行開發的工作,你可以參照現有代碼的使用形式,將需要使用的對象加入到構造函數的參數列表上,你就可以使用對象,調 ...
  • 1.JDBC體繫系統 一組規範:介面 JDBC介面(API)包括兩個層次: 面嚮應用的API:Java API,抽象介面,供應用開發人員使用(連接資料庫,執行SQL語句,獲得結果) 面向資料庫的API:Java Driver API,供開發商開發資料庫驅動程式 JDBC是sun公司提供一套用於資料庫 ...
  • 3. ETCD 常用命令 etcdctl是一個命令行的客戶端,它提供了一些命令,可以方便我們在對服務進行測試或者手動修改資料庫內容。etcdctl與kubectl和systemctl的命令原理及操作類似,其基本用法如下所示: etcdctl [global options] command [com ...
  • 前言 最近在centos8系統下部署django項目時,要用到mysql資料庫,在安裝中遇到了點坑,之後參考了一位博主的文章,也是順利的安裝配置成功,博主原文連接: []((20條消息) centos8安裝mysql8.0.22教程(超詳細)_上善若水滴世界的博客-CSDN博客_centos mys ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...