フレームワーク概要
Anno.Core は .NET Core に基づくマイクロサービス開発フレームワークで、gRPC および Thrift を通信プロトコルとして利用可能です。サービスディスカバリ、トレーシング、Cron スケジューリング、リクエスト制限、イベントバス、CQRS、DDD を標準機能として搭載し、プラグインアーキテクチャで拡張性を実現しています。開発プロセスを簡素化し、高パフォーマンスなマイクロサービス構築を支援します。
環境構築手順
事前準備として、以下の環境を整えてください:
- .NET Core SDK 3.1 以降のインストール(推奨バージョン 6.0)
- Visual Studio または Visual Studio Code
プロジェクトの起動手順:
- リポジトリをクローンします:
git clone https://github.com/AnnoFramework/Anno.Core.git
cd Anno.Core
- ソリューションファイル
Anno.Core.slnを開き、NuGet パッケージを復元します。 Anno.Coreプロジェクトを選択し、実行ボタンをクリックします。
設定ファイルのカスタマイズ
appsettings.json で以下を設定します:
{
"ServicePort": 8080,
"ServiceWeight": 2,
"PluginList": [
"Anno.Plugins.Monitor",
"Anno.Plugins.Tracing"
],
"RequestTimeout": 30000,
"RegistryConfig": {
"Address": "192.168.10.5",
"Port": 8500
}
}
サービスプラグインの実装例
新規サービスの作成例(GreetingModule):
using Anno.Framework;
namespace Anno.Plugins.GreetingService
{
public class GreetingBootstrapper : IPluginBootstrap
{
public void Bootstrap()
{
// プラグイン初期化処理
}
}
public class GreetingModule : ServiceModule
{
public dynamic Greet(string userName, int userAge)
{
return new { Result = $"{userName}さん、{userAge}歳ですね" };
}
}
}
実用例とベストプラクティス
電子商取引システム構築
注文管理、在庫制御、決済処理などのマイクロサービスを構築する際、サービスディスカバリ機能とトレーシングを活用し、動的なスケーリングと障害診断を実現します。
モニタリングシステムの構築
フレームワーク内蔵のログライブラリとイベントバスを組み合わせ、リアルタイムのメトリクス収集と定時分析を実装します。Cron スケジューリングで定期的な分析タスクを実行します。
主要プラグイン一覧
- Anno.Plugins.Monitor: サービスの健康状態とパフォーマンス指標をリアルタイム監視
- Anno.Plugins.Tracing: トレースデータを可視化し、呼び出し遅延の原因を特定
- Anno.Plugins.RateLimiter: ピーク時のリクエスト過多を防ぎ、システム安定性を維持