欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言輕量級高性能嵌入式規(guī)則引擎RuleGo使用詳解

 更新時間:2023年11月17日 09:34:58   作者:GitHub精選  
這篇文章主要為大家介紹了Go語言輕量級高性能嵌入式規(guī)則引擎RuleGo使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景介紹

在處理大量數(shù)據(jù)時,我們經(jīng)常需要對數(shù)據(jù)進行聚合、分發(fā)、過濾、轉(zhuǎn)換、豐富和執(zhí)行各種操作。而 RuleGo 是一個基于 Go 語言的輕量級、高性能、嵌入式規(guī)則引擎,可以幫助我們解決這些問題。它可以在低成本設(shè)備上高效地處理和鏈接數(shù)據(jù),適用于物聯(lián)網(wǎng)邊緣計算。同時,RuleGo 還是一個靈活、高度可定制的事件處理框架,可以滿足高度個性化或頻繁變化的業(yè)務(wù)場景需求。

用一句話介紹 RuleGo 項目就是:“RuleGo is a lightweight, high-performance, embedded rule engine based on Go language. It can aggregate, distribute, filter, transform, enrich and execute various actions on input messages.”。

項目介紹

RuleGo 是一個基于編排的規(guī)則引擎,最擅長解耦系統(tǒng)。它采用協(xié)程池和對象池等技術(shù),結(jié)合 Go 語言的高性能特性,可以在10W 數(shù)據(jù)處理 JS 腳本過濾-> JS 腳本數(shù)據(jù)處理-> HTTP 推送的情況下,平均處理時間為 9 秒。同時,RuleGo 支持將自己嵌入到現(xiàn)有項目中,非侵入式地利用其特性。所有業(yè)務(wù)邏輯都是組件化的,可以靈活配置和重用。你可以靈活地組合和重用不同的組件,以實現(xiàn)高度可定制和可擴展的業(yè)務(wù)流程。支持規(guī)則鏈的動態(tài)編排,你可以將你的業(yè)務(wù)封裝成 RuleGo 組件,通過構(gòu)建塊實現(xiàn)高度變化的業(yè)務(wù)需求。

同時,RuleGo 提供了豐富靈活的擴展接口和鉤子,如:自定義組件、組件注冊管理、規(guī)則鏈 DSL 解析器、協(xié)程池、規(guī)則節(jié)點消息流入/流出回調(diào)、規(guī)則鏈處理結(jié)束回調(diào)等。支持通過 Go 插件動態(tài)加載組件和擴展組件。內(nèi)置常用組件包括:消息類型切換、JavaScript 切換、JavaScript 過濾器、JavaScript 轉(zhuǎn)換器、HTTP 推送、MQTT 推送、發(fā)送電子郵件、日志記錄等組件。你也可以自己擴展其他組件。同時,RuleGo 還具有可靠的上下文隔離機制,無需擔(dān)心高并發(fā)情況下的數(shù)據(jù)流問題。

如何使用

你可以通過以下步驟安裝和使用 RuleGo:

1、安裝 Go 語言環(huán)境

2、執(zhí)行命令:go get github.com/rulego/rulego

3、在你的代碼中引入 RuleGo 包

4、編寫規(guī)則鏈,進行業(yè)務(wù)處理

對于以上鏈?zhǔn)秸{(diào)用關(guān)系,可以用如下 JSON DSL 進行描述。

{
  "ruleChain": {
    "name": "Test rule chain",
    "root": true,
    "debugMode": false
  },
  "metadata": {
    "nodes": [
      {
        "id": "s1",
        "type": "jsFilter",
        "name": "Filtering Data",
        "debugMode": true,
        "configuration": {
          "jsScript": "return msg!='bb';"
        }
      },
      {
        "id": "s2",
        "type": "jsTransform",
        "name": "Transform Data",
        "debugMode": true,
        "configuration": {
          "jsScript": "metadata['test']='test02';\n metadata['index']=50;\n msgType='TEST_MSG_TYPE2';\n var msg2=JSON.parse(msg);\n msg2['aa']=66;\n return {'msg':msg2,'metadata':metadata,'msgType':msgType};"
        }
      },
      {
        "id": "s3",
        "type": "restApiCall",
        "name": "Call Rest Api Push Data",
        "debugMode": true,
        "configuration": {
          "restEndpointUrlPattern": "http://192.168.216.21:9099/api/socket/msg",
          "requestMethod": "POST",
          "maxParallelRequestsCount": 200
        }
      }
    ],
    "connections": [
      {
        "fromId": "s1",
        "toId": "s2",
        "type": "True"
      },
      {
        "fromId": "s2",
        "toId": "s3",
        "type": "Success"
      }
    ],
    "ruleChainConnections": null
  }
}

如果你想了解更多使用方法,可以參考項目文檔中的示例代碼。

項目推介

RuleGo是一個非常優(yōu)秀的開源項目,它的開發(fā)活躍度很高,已經(jīng)獲得了很多開發(fā)者的認(rèn)可和使用。它還被一些知名公司和業(yè)內(nèi)知名人士推薦使用。如果你需要一個高性能、靈活、可定制的規(guī)則引擎,RuleGo 將是一個非常好的選擇。

以下是該項目 Star 趨勢圖(代表項目的活躍程度):

開源項目地址:https://github.com/rulego/rulego

以上就是Go語言輕量級高性能嵌入式規(guī)則引擎RuleGo使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Go RuleGo規(guī)則引擎的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入剖析Go語言中數(shù)組和切片的區(qū)別

    深入剖析Go語言中數(shù)組和切片的區(qū)別

    本文將深入探討 Go 語言數(shù)組和切片的區(qū)別,包括它們的定義、內(nèi)存布局、長度和容量、初始化和操作等方面。從而更好地在實際開發(fā)中選擇和使用合適的數(shù)據(jù)結(jié)構(gòu),提高代碼的效率和可維護性,需要的可以參考一下
    2023-05-05
  • Golang中 import cycle not allowed 問題的解決方法

    Golang中 import cycle not allowed 問題

    這篇文章主要介紹了Golang中 import cycle not allowed 問題的解決方法,問題從描述到解決都非常詳細(xì),需要的小伙伴可以參考一下
    2022-03-03
  • 詳解Go語言中關(guān)于包導(dǎo)入必學(xué)的 8 個知識點

    詳解Go語言中關(guān)于包導(dǎo)入必學(xué)的 8 個知識點

    這篇文章主要介紹了詳解Go語言中關(guān)于包導(dǎo)入必學(xué)的 8 個知識點,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 在Go中創(chuàng)建隨機的安全密碼

    在Go中創(chuàng)建隨機的安全密碼

    今天小編就為大家分享一篇關(guān)于在Go中創(chuàng)建隨機的安全密碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 一文詳解go閉包(Closure)使用教程

    一文詳解go閉包(Closure)使用教程

    在Go語言中,閉包(Closure)是一種特殊的函數(shù),它可以捕獲其創(chuàng)建時所在作用域中的變量,本文給大家詳細(xì)介紹了go閉包(Closure)使用教程,感興趣的朋友可以參考下
    2024-01-01
  • go?goth封裝第三方認(rèn)證庫示例詳解

    go?goth封裝第三方認(rèn)證庫示例詳解

    這篇文章主要為大家介紹了go?goth封裝第三方認(rèn)證庫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go語言實現(xiàn)定時器的方法

    Go語言實現(xiàn)定時器的方法

    這篇文章主要介紹了Go語言實現(xiàn)定時器的方法,涉及Go語言時間操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go函數(shù)使用(函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用等)

    Go函數(shù)使用(函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用等)

    本文主要介紹了Go函數(shù)使用,包括函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用、可變參數(shù)函數(shù)、匿名函數(shù)、遞歸函數(shù)、高階函數(shù)等,感興趣的可以了解一下
    2023-11-11
  • go web 處理表單的輸入的說明

    go web 處理表單的輸入的說明

    今天給大家普及go表單輸入方面的知識點,整體代碼分為前端頁面和后端處理方法,通過代碼給大家介紹的很詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • GO中使用谷歌GEMINI模型任務(wù)代碼實例

    GO中使用谷歌GEMINI模型任務(wù)代碼實例

    這篇文章主要為大家介紹了GO中使用谷歌GEMINI模型任務(wù)代碼實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01

最新評論