Apache Ignite.NET 2.4:シンおよびクロスプラットフォーム

最近、 Apache Ignite分散SQLデータベースの新しいバージョンがリリースされました。.NETの観点から新機能を検討することをお勧めします。







クラスターに点火







シン.NETクライアント



Javaと.NETの両方でバージョン2.4より前には、サーバーとクライアントの2つのクラスター接続オプションがありました。 一般に、クライアントモードがサーバーモードと異なるのは、クライアントノードがデータを保存せず、計算(計算、マップの縮小)を実行しないことだけです。 残りについては、既存の発見および通信コンポーネントが再利用されます。 クライアントノードのクラスターへの参加は、数秒かかることがある比較的重いプロセスです。







.NETの状況は、JVMがプロセス内で起動し、多くのリソースを消費し、環境に追加の要件を導入するという事実によって複雑になります。







これらすべての問題は、新しい「シン」クライアントによって解決されます









機能のうち、これまでのところCache + LINQのみがありますが、将来は他のすべてを追加する予定です。

この場合、APIは同一に見えます。







var cfg = new IgniteClientConfiguration { Host = "127.0.0.1" }; using (var client = Ignition.StartClient(cfg)) { var cache = client.GetCache<int, Person>("persons"); cache[1] = new Person(1, "Vasya"); cache[2] = new Person(2, "Petya"); // SQL cache.Query(new SqlFieldsQuery("select name from person where id > 1")); // LINQ cache.AsCacheQueryable().Where(x => x.Value.Id > 1) ...; }
      
      





シンクライアントの外観は、既存の「シック」APIが将来ダンプに送信されることを意味するものではないことに注意してください。









LINQPadの例

Igniteを使用するプロセスでは、クラスターにすばやく接続し、キャッシュ内のデータを確認して、何らかの種類の要求を実行することができます。 これを行うには、 Visor Command LineWeb Consoleなどのツールがあります。







シンクライアントの出現により、これはすべてLINQPadを介して迅速かつ便利に行うことができます。 「Add NuGet ...」でApache.Ignite



NuGetパッケージを追加するだけで十分です。完成したサンプルコードは自動的にダウンロードされます。







スクリーンショット

Ignite.NETシンクライアントLINQPadサンプル







.NET Core、Mono、Linux、macOS



macOS上のVisual Studio CodeのIgnite.NET







タイトルはそれ自体を物語っています。現在、Ignite.NETは次のプラットフォームとOSで使用できます。









どうやって試すの?

.NET Coreでは、 命令はすべてのプラットフォームで同じです。









警告NU1701:このパッケージは、プロジェクトと完全に互換性がない可能性があります。

プロジェクトwarning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.



は、 warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.



を示す警告warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.



を出しwarning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.



warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.









その理由は、NuGetパッケージ内は.NET 4.0でビルドされた唯一のdllであり、プロセスを簡素化するために行われたためです。 これは、彼女が.NET Coreで動作することを妨げません。 csproj



<PropertyGroup><NoWarn>NU1701</NoWarn></PropertyGroup>



行を使用して、警告を抑制することができcsproj









モノ

Monoは通常の「Classic .NET」ソリューションで動作し、 MonoDevelopでLinux上に作成できます。







.NET Coreはx64を必要とするため、Monoのユーザーケースの1つは32ビットプロセッサです。 Ignite.NETの起動を手元にあるすべてのものでテストしているときにこれに出会い、Monoですべてが正常に開始されたLubuntuがインストールされた古いEEE PC 901が手元にありました。







LinuxおよびmacOSの開発

使用に加えて、Ignite.NETはLinuxおよびmacOSでも開発できるようになりました。 Monoでは、メインソリューションはそのままコンパイルされます。 .NET Coreの下に、.NET Coreの個別のソリューションファイルとプロジェクトファイルが追加されました。

Apache.Ignite.DotNetCore.sln







おわりに



Ignite.NETは現在、すべての主要なプラットフォームとオペレーティングシステムをカバーしています。 可能になった一般的な使用例の1つは、Linux上で実行される.NETノードのクラスターと、Windowsワークステーション上のシンプロトコルを介して実行されるクライアントアプリケーションです。







.NET Coreラインのさらなる開発が計画されています:ASP.NET Core(キャッシュ)およびEntity Framework Core(キャッシュ、データプロバイダー)との統合。 このような統合 、従来のASP.NETおよびEFには既に 存在します。








All Articles