akka現有的分布式定時任務框架總結

根據你的需求,以下是一些基于 Akka 實現的分布式定時任務框架,以及相關的 GitHub 項目推薦:

1. Openjob

Openjob 是一個基于 Akka 架構的新一代分布式任務調度框架,支持多種定時任務、延時任務、工作流設計,采用無中心化架構,底層使用一致性分片算法,支持無限水平擴容。

  • 特性

    • 高可靠:分布式無狀態設計,支持多樣的數據庫(H2/MySQL/PostgreSQL/Oracle/TiDB)。

    • 高性能:底層使用一致性分片算法,全程無鎖化設計,任務調度精確到秒級別,支持輕量級分布式計算、無限水平擴容。

    • 定時調度:支持分布式定時任務、固定頻率任務、高性能秒級任務、一次性任務定時調度。

    • 分布式計算:支持單機、廣播、Map、MapReduce 和分片多種分布式編程模型,輕松實現大數據分布式計算。

    • 延時任務:基于 Redis 實現高性能延時任務,底層實現任務多級存儲,提供豐富的統計和報表。

    • 工作流:內置工作流調度引擎,支持可視化 DAG 設計,簡單高效實現復雜任務調度。

    • 權限管理:完善的用戶管理,支持菜單、按鈕以及數據權限設置,靈活管理用戶權限。

    • 報警監控:全面的監控指標,豐富及時的報警方式,便于運維人員快速定位和解決線上問題。

    • 跨語言:原生支持 Java/Go/PHP/Python 多語言,以及 Spring Boot、Gin、Swoft 等框架集成。

  • GitHub 項目地址:Openjob GitHub 。

2. k-job

k-job 是一個基于 PowerJob 重寫和重構的分布式任務框架,支持定時任務、負載均衡和 OpenAPI 異步調用。

  • 特性

    • 支持定時任務頻繁創建和任務參數頻繁動態變動的場景。

    • 支持大量定時任務并發執行,實現負載均衡。

    • 主要針對小型任務,無需過多配置,不對任務實例進行操作。

  • 技術選型

    • 通信:gRPC(基于 Netty 的 NIO)。

    • 序列化:Protobuf 編碼格式。

    • 負載均衡:自實現的注冊中心 NameServer。

    • 消息隊列:自實現的簡易消息隊列,支持異步發送、超時重試和多級延時隊列。

    • 定時調度:時間輪算法。

  • GitHub 項目地址:k-job GitHub 。

3. Akka Quartz Scheduler

Akka Quartz Scheduler 是一個為 Akka 添加定時任務管理的工具,基于 Quartz 調度器實現。

  • 特性

    • 結合 Akka 的 Actor 模型和 Quartz 的調度功能,實現定時任務的管理。

    • 支持復雜的調度策略和任務持久化。

  • GitHub 項目地址:Akka Quartz Scheduler GitHub 。

4. ShedLock

雖然 ShedLock 不是基于 Akka 的,但它是一個輕量級的分布式鎖解決方案,可以與 Spring 的 @Scheduled 注解配合使用,確保分布式環境下的任務只被一個實例執行。

  • 特性

    • 支持多種數據庫(如 MySQL、PostgreSQL 等)作為鎖存儲。

    • 簡單易用,與 Spring 的 @Scheduled 注解無縫集成。

    • 支持鎖的超時機制,防止任務執行時間過長導致的鎖無法釋放。

  • GitHub 項目地址:ShedLock GitHub 。

5. Elastic-Job

Elastic-Job 是一個分布式調度解決方案,基于 Quartz 和 Zookeeper 實現。

  • 特性

    • 分布式調度協調、彈性擴容縮容、失效轉移、錯過執行作業重觸發等。

    • 支持任務分片,確保同一分片在分布式環境中僅一個執行實例。

    • 提供豐富的作業類型和運維平臺。

  • GitHub 項目地址:Elastic-Job GitHub 。

推薦

如果你正在尋找一個高性能、支持多種任務類型(包括定時任務、延時任務、工作流設計)的分布式任務調度框架,Openjob 是一個不錯的選擇。它基于 Akka 架構,支持無限水平擴容,提供了豐富的功能和良好的擴展性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70718.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70718.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序地圖map全方位解析

微信小程序地圖map全方位解析 微信小程序的 <map> 組件是一個功能強大的工具&#xff0c;可以實現地圖展示、定位、標注、路徑規劃等多種功能。以下是全方位解析微信小程序地圖組件的知識點&#xff1a; 一、地圖組件基礎 1. 引入 <map> 組件 在頁面的 .wxml 文…

Python的PyTorch+CNN深度學習技術在人臉識別項目中的應用

人臉識別技術是一種基于人臉特征進行身份識別的生物識別技術&#xff0c;其核心原理包括人臉檢測、人臉對齊、特征提取、特征匹配、身份識別。 一、應用場景 安防&#xff1a;門禁、監控。 金融&#xff1a;刷臉支付、身份驗證。 社交&#xff1a;自動標注、美顏。 醫療&am…

《數據庫索引設計與優化》譯本錯誤糾正(1)

今天在學習《數據庫索引設計與優化》第十一章第198頁的時候遇到一個問題&#xff0c;即參數的文字描述與實際不符。我看的是從網絡上找到的譯本&#xff0c;許多喜歡白嫖的朋友可能也會像我一樣遇到這種問題。 可以看到&#xff0c;上面對參數Z的描述是&#xff1a;Z上一次索引…

API測試工具:Swagger vs Postman 2025最新全面對比

隨著微服務架構的普及和云原生應用的激增&#xff0c;高效的 API 開發、測試和文檔管理工具變得越來越重要。在眾多 API 工具中&#xff0c;Swagger 和 Postman 各自以不同的方式解決著 API 開發生命周期中的關鍵問題&#xff0c;本文將從多個維度深入對比這兩款工具&#xff0…

如何查詢SQL Server數據庫服務器的IP地址

如何查詢SQL Server數據庫服務器的IP地址 作為數據庫管理員或開發人員&#xff0c;了解如何查詢SQL Server數據庫服務器的IP地址是一項重要技能。本文將介紹幾種簡單而有效的方法&#xff0c;幫助你輕松獲取這一信息。無論你是新手還是經驗豐富的專業人士&#xff0c;這些方法…

centos 7 安裝python3 及pycharm遠程連接方法

安裝openssl 使用pip3安裝 virtualenv的時候會提示WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 這是因為缺少openssl 2.0以上版本 解決辦法&#xff1a; 一、先確認版本 openssl version 二、安…

AI人工智能之機器學習sklearn-數據預處理和劃分數據集

1、概要 本篇學習AI人工智能之機器學習sklearn數據預處理和劃分數據集&#xff0c;從代碼層面講述如何進行數據的預處理和數據集劃分。 2、簡介 本片講述數據預處理的標準化處理、歸一化處理&#xff0c;以常用的兩個類為例 標準化處理類 StandardScaler歸一化處理類 MinMax…

智能硬件-01智能停車場

行業背景 隨著現代人們生活水平的提高&#xff0c;私家車輛在不斷增加&#xff0c;小區將面臨著臨時車用戶要多于固定車用戶的窘境&#xff0c;尤其是在早晚高峰時段車輛出入擁堵&#xff0c;對小區的車輛管理難度越來越大&#xff0c;對停車場收費員的崗位要求越來越高&#…

定長內存池的實現、測試及錯誤分析

背景 C/C 申請內存使用的是 malloc &#xff0c;malloc 其實就是一個大眾貨&#xff0c;什么場景下都可以用&#xff0c;但是什么場景下都可以用就意味著什么場景下都不會有很高的性能。 定長內存池解決固定大小的內存申請釋放需求&#xff0c; 性能達到極致&#xff0c;不考…

vue3 下載文件 responseType-blob 或者 a標簽

在 Vue 3 中&#xff0c;你可以使用 axios 或 fetch 來下載文件&#xff0c;并將 responseType 設置為 blob 以處理二進制數據。以下是一個使用 axios 的示例&#xff1a; 使用 axios 下載文件 首先&#xff0c;確保你已經安裝了 axios&#xff1a; npm install axios然后在你…

Search API:讓數據獲取變得簡單高效的搜索引擎代理商

Search API&#xff1a;讓數據獲取變得簡單高效的搜索引擎代理商 在當今數字化時代&#xff0c;數據驅動的決策變得越來越重要&#xff0c;而獲取精準、實時的數據是眾多企業、研究機構和開發者的核心需求。然而&#xff0c;直接爬取搜索引擎或行業資訊網站可能會遇到諸多挑戰&…

halcon三維對象處理例程總結(二)

目錄 一、intersect_plane_object_model_3d二、interactive_intersection三、measure_plant四、moments_object_model_3d五、projective_trans_object_model_3d六、read_object_model_3d_generic_ascii一、intersect_plane_object_model_3d 計算三維物體模型與平面之間的相交部…

基于 Python 的項目管理系統開發

基于 Python 的項目管理系統開發 一、引言 在當今快節奏的工作環境中&#xff0c;有效的項目管理對于項目的成功至關重要。借助信息技術手段開發項目管理系統&#xff0c;能夠顯著提升項目管理的效率和質量。Python 作為一種功能強大、易于學習且具有豐富庫支持的編程語言&…

2月24(信息差)

&#x1f30d;“任意舞蹈任意學”&#xff01;宇樹機器人又進化了 傳Meta有意合作拋出橄欖枝 &#x1f384;兩部門&#xff1a;深入推進公路沿線充電基礎設施建設 推動大功率充電技術標準應用 ?小米15 Ultra、小米SU7 Ultra定檔2月27日 雷軍宣布&#xff1a;向超高端進發 1.…

mysql 遷移到人大金倉數據庫

我是在windows上安裝了客戶端工具 運行數據庫遷移工具 打開 在瀏覽器輸入http://localhost:54523/ 賬號密碼都是kingbase 添加mysql源數據庫連接 添加人大金倉目標數據庫 添加好的兩個數據庫連接 新建遷移任務 選擇數據庫 全選 遷移中 如果整體遷移不過去可以單個單個或者幾個…

C++和OpenGL實現3D游戲編程【連載23】——幾何著色器和法線可視化

歡迎來到zhooyu的C++和OpenGL游戲專欄,專欄連載的所有精彩內容目錄詳見下邊鏈接: ??C++和OpenGL實現3D游戲編程【總覽】 1、本節實現的內容 上一節課,我們在Blend軟件中導出經緯球模型時,遇到了經緯球法線導致我們在游戲中模型光照顯示問題,我們在Blender軟件中可以通過…

JUC并發—12.ThreadLocal源碼分析

大綱 1.ThreadLocal的特點介紹 2.ThreadLocal的使用案例 3.ThreadLocal的內部結構 4.ThreadLocal的核心方法源碼 5.ThreadLocalMap的核心方法源碼 6.ThreadLocalMap的原理總結 1.ThreadLocal的特點介紹 (1)ThreadLocal的注釋說明 (2)ThreadLocal的常用方法 (3)ThreadL…

Deepseek和Grok 3對比:寫一段冒泡排序

1、這是訪問Grok 3得到的結果 2、grok3輸出的完整代碼&#xff1a; def bubble_sort(arr):n len(arr) # 獲取數組長度# 外層循環控制排序輪數for i in range(n):# 內層循環比較相鄰元素&#xff0c;j的范圍逐漸減少for j in range(0, n - i - 1):# 如果當前元素大于下一個元…

Java-01-源碼篇-04集合-05-ConcurrentHashMap(1)

1.1 加載因子 加載因子&#xff08;Load Factor&#xff09;是用來決定什么時候需要擴容的一個參數。具體來說&#xff0c;加載因子 當前元素數量 / 桶的數量&#xff0c;當某個桶的元素個數超過了 桶的數量 加載因子 時&#xff0c;就會觸發擴容。 我們都知道 ConcurrentHas…

vue3: directive自定義指令防止重復點擊

第一章 前言 相信很多小伙伴會在各個渠道上搜如何防止重復點擊&#xff0c;之后會推薦什么防抖、節流來避免這一操作&#xff0c;該方法小編就不繼續往下說了。接下來說說小編的場景&#xff0c;項目已經完成的差不多了&#xff0c;但是由于之前大家都是直接點擊事件調用方法的…