RuleGo v0.18.0 リリース: Go の軽量、高性能、組み込み型、オーケストレーション可能なコンポーネントベースのルール エンジン

RuleGoこれは、Go言語に基づいた、軽量、高性能、組み込み、プログラム可能なコンポーネントベースのルール エンジンです。また、柔軟な構成と高度にカスタマイズされたイベント処理フレームワークでもあります。異種システムのデータ統合をサポートし、入力メッセージに対して集約、配布、フィルタリング、変換、強化、およびさまざまなアクションを実行できます。

一般的な使用シナリオ

  • エッジ コンピューティング:RuleGoエッジ サーバーにデプロイして、データをクラウドにレポートする前に前処理、フィルタリング、集計、計算することができます。データ処理ルールと分散ルールは、システムを再起動せずに、ルール チェーンを通じて動的に構成および変更できます。
  • モノのインターネット:デバイス データを収集してレポートし、ルール チェーンのルールに従って判断した後、電子メールの送信、アラームの送信、他のデバイスやシステムとのリンクなど、1 つ以上のアクションがトリガーされます。
  • データ分散:さまざまなメッセージ タイプに応じて、HTTP、MQTT、または gRPC を呼び出して、さまざまなシステムにデータを分散できます。
  • アプリケーションの統合:RuleGo ssh、webhook、kafka、メッセージ キュー、データベース、chatGPT、サードパーティ アプリケーション システムなど、さまざまなシステムやプロトコルを接続するための接着剤として使用します。
  • 異種システム データの一元処理:さまざまなデータ ソース (MQTT、HTTP、WS、TCP/UDP など) からデータを受信し、データをフィルタリングし、形式を変換して、データベース、ビジネス システム、またはシステムに配布します。ダッシュボード。
  • 高度にカスタマイズされたビジネス:RuleGo高度にカスタマイズされたビジネスまたは頻繁に変更されるビジネスを分離し、管理のためにルール チェーンに引き渡します。ビジネス ニーズは、メイン プログラムを再起動しなくても変化します。
  • 複雑なビジネス オーケストレーション:ビジネスをカスタム コンポーネントにカプセル化し、RuleGoこれらのカスタム コンポーネントをオーケストレーションおよび駆動することで、ビジネス ロジックは動的な調整と置換をサポートします。
  • マイクロサービス オーケストレーション:マイクロサービスをオーケストレーションしRuleGoて駆動するか、サードパーティ サービスを動的に呼び出してビジネスを処理し、結果を返します。
  • ビジネス コードとビジネス ロジックの分離:例: ユーザー ポイント計算システム、リスク管理システム。
  • 自動化:例: プロセス オートメーション システム、マーケティング オートメーション システム、大模型ユーザーの意図を抽出するためのドッキング、および他のシステムとのリンクやビジネス処理の実行のためのルール チェーンのトリガー。
  • 柔軟な構成と高度にカスタマイズされたイベント処理フレームワーク:さまざまなメッセージ タイプの非同期または同期処理。

アーキテクチャ図

今回のアップデート

2024 年を迎えるための強固な基盤を構築します。今回は主に以下を追加します。

1. AOP (アスペクト指向プログラミング) メカニズムを追加します。これはインターセプターまたはフック メカニズムに似ていますが、より強力で柔軟です。書類

  • これにより、ルール チェーンまたはノードの元のロジックを変更したり、元のルール チェーンまたはノードのロジックを直接置き換えたりすることなく、ルール チェーンの実行に追加の動作を追加できます。
  • これにより、一部の一般的な動作 (ロギング、セキュリティ、ルール チェーン実行追跡、コンポーネントの劣化、コンポーネントの再試行、コンポーネントのキャッシュなど) をビジネス ロジックから分離できます。
  • これにより、RuleGo フレームワークをより適切に制御および拡張できるようになります。

2. さらに、本番環境の信頼性検証が追加され、多数の単体テスト (カバー率 92%) とパフォーマンス テスト テスト ケース (リンク) が追加されています。

詳細なアップデート:

[v0.18.0] 2023/12/27

  • 特技: AOP モジュールを追加します。これにより、ルール チェーンまたはノードの元のロジックを変更せずに、ルール チェーンの実行に追加の動作を追加したり、元のルール チェーンまたはノードのロジックを直接置き換えたりすることができます。次の拡張ポイントが提供されます: Before Advice、After Advice、Around Advice、Start Advice、End Advice、Completed Advice、OnCreated Advice、OnReload Advice、OnDestroy Advice。書類
  • feat:restApiCall ノード コンポーネントは、SSE (Server-Sent Events) ストリーミング リクエスト モードを追加し、大規模なモデル インターフェイスとのドッキングをサポートします。
  • 特技: CI 自動テスト プロセスを追加します。
  • 特徴: 多数の単体テストを追加し、カバー率は 92% に達しました。
  • 特技: パフォーマンステスト ケース を追加します。
  • feat:sendEmail ノード コンポーネントに ConnectTimeout 設定を追加します。
  • feat:/examples/server サンプル プロジェクト、 -js -plugins -chain_id フラグを追加し、js ネイティブ ファイル、プラグインの起動時の読み込みをサポートし、mqtt サブスクリプション処理ルール チェーン ID を指定します。
  • 修正: /examples/server サンプル プロジェクトでは、ルール チェーン フォルダーのマルチレイヤー パスを正常に解析できません。
  • fix:/examples/server サンプル プロジェクトでは、ルール チェーンを保存するときに、古いルール チェーン ファイルのデータが正しく上書きされない場合があります。
  • 修正: メタデータには同時読み取りと書き込みの問題が発生する可能性があります。
  • 修正: ルール エンジンはデータを同期的に処理するため、onCompleted コールバック関数を正しく呼び出すことができない可能性があります。
  • 修正:RuleChainPool nil の問題。
  • 修正: mqtt エンドポイント、ヘッダーからトピックを取得できない。
  • refactor:onEnd コールバック関数を使用すると、relationshipType を取得できます。
  • リファクタリング: 関数 Configuration.GetToString を削除します。
  • opt: 一部のコンポーネント、強化された nil チェック。
  • Opt:dsl AdditionalInfo フィールドは、omitempty json タグを追加します。
  • opt:run go fmt。

その他の情報

  • GiteeまたはGithubでフィードバックや提案を送信することを歓迎します    
  • このプロジェクトが気に入ったら、スターを付けてください
  • ドキュメント公式ウェブサイト:rulego.cc

おすすめ

転載: www.oschina.net/news/272552/rulego-0-18-0-released