最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

背景介紹

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

用一句話介紹 RuleGo 項(xiàng)目就是:“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.”。

項(xiàng)目介紹

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

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

如何使用

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

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

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

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

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

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

{
  "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
  }
}

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

項(xiàng)目推介

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

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

開源項(xiàng)目地址:https://github.com/rulego/rulego

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

相關(guān)文章

  • 淺析Golang中make和new的用法區(qū)別

    淺析Golang中make和new的用法區(qū)別

    在Go語言中,有兩個(gè)比較雷同的內(nèi)置函數(shù),分別是new和make方法,二者都可以用來分配內(nèi)存,那他們有什么區(qū)別呢?下面就跟隨小編一起來學(xué)習(xí)一下吧
    2024-02-02
  • Go語言程序查看和診斷工具詳解

    Go語言程序查看和診斷工具詳解

    這篇文章主要為大家詳細(xì)介紹了Go語言程序查看和診斷工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • go編譯標(biāo)簽build?tag注釋里語法詳解

    go編譯標(biāo)簽build?tag注釋里語法詳解

    這篇文章主要為大家介紹了go編譯標(biāo)簽build?tag注釋里語法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解Golang函數(shù)式選項(xiàng)(Functional?Options)模式

    詳解Golang函數(shù)式選項(xiàng)(Functional?Options)模式

    什么是函數(shù)式選項(xiàng)模式,為什么要這么寫,這個(gè)編程模式解決了什么問題呢?其實(shí)就是為了解決動(dòng)態(tài)靈活的配置不同的參數(shù)的問題。下面通過本文給大家介紹Golang函數(shù)式選項(xiàng)(Functional?Options)模式的問題,感興趣的朋友一起看看吧
    2021-12-12
  • Go語言開發(fā)發(fā)送Get和Post請(qǐng)求的示例

    Go語言開發(fā)發(fā)送Get和Post請(qǐng)求的示例

    這篇文章主要介紹了Go語言開發(fā)發(fā)送Get和Post請(qǐng)求的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Go語言協(xié)程處理數(shù)據(jù)有哪些問題

    Go語言協(xié)程處理數(shù)據(jù)有哪些問題

    協(xié)程(coroutine)是Go語言中的輕量級(jí)線程實(shí)現(xiàn),由Go運(yùn)行時(shí)(runtime)管理。本文為大家詳細(xì)介紹了Go中的協(xié)程,協(xié)程不需要搶占式調(diào)度,可以有效提高線程的任務(wù)并發(fā)性,而避免多線程的缺點(diǎn)
    2023-02-02
  • Golang使用gofumpt進(jìn)行代碼格式化

    Golang使用gofumpt進(jìn)行代碼格式化

    這篇文章主要為大家詳細(xì)介紹了Golang如何使用gofumpt進(jìn)行代碼格式化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Golang語言使用像JAVA?Spring注解一樣的DI和AOP依賴注入實(shí)例

    Golang語言使用像JAVA?Spring注解一樣的DI和AOP依賴注入實(shí)例

    這篇文章主要為大家介紹了Golang語言使用像JAVA?Spring注解一樣的DI和AOP依賴注入實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 詳解Go語言設(shè)計(jì)模式之單例模式

    詳解Go語言設(shè)計(jì)模式之單例模式

    單例模式很容易記住。就像名稱一樣,它只能提供對(duì)象的單一實(shí)例,保證一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局訪問該實(shí)例的方法。本文就來聊聊Go語言中的單例模式,感興趣的小伙伴可以了解一下
    2022-10-10
  • Go語言從單體服務(wù)到微服務(wù)設(shè)計(jì)方案詳解

    Go語言從單體服務(wù)到微服務(wù)設(shè)計(jì)方案詳解

    這篇文章主要為大家介紹了Go語言從單體服務(wù)到微服務(wù)設(shè)計(jì)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論

仁怀市| 扬中市| 广元市| 甘泉县| 惠东县| 房山区| 宁陕县| 万宁市| 房山区| 如皋市| 尼勒克县| 会同县| 会同县| 阿拉尔市| 五莲县| 长武县| 红桥区| 滕州市| 府谷县| 莎车县| 黄骅市| 平果县| 麻栗坡县| 琼中| 石家庄市| 临沭县| 靖宇县| 湖南省| 威信县| 噶尔县| 石阡县| 长治市| 彰化市| 班戈县| 商丘市| 白城市| 临沧市| 滦平县| 库车县| 新巴尔虎左旗| 巧家县|