Microsoft Service Fabricは、マイクロサービスベースのアプリケーションの構築と展開を簡素化して、Azure、オンプレミス、またはその他のクラウドプラットフォームで実行されているかどうかにかかわらず、信頼性が高く、スケーラブルで俊敏なアプリケーションを組織に提供するアプリケーションプラットフォームです。 Azure Service Fabricは、ヘルスモニタリング機能を提供し、クラウドベースのアプリケーションの開発を簡素化するためのさまざまな組み込みプログラミングモデルを提供します。
NCache は、.NETおよびJavaアプリケーションに非常にスケーラブルなアプローチを提供するメモリ内分散キャッシングソリューションです。 NCache また、ServiceFabricやKubernetesなどのさまざまなクラウドプラットフォームのサポートも提供しています Azure, アマゾンEKS & Red Hat OpenShift。ピーク時のトランザクション負荷におけるクラウド アプリケーションのパフォーマンスとスケーラビリティが向上します。次の図は、 NCache Azure Service Fabricの場合:
NCache 次の方法でAzureServiceFabricを使用してデプロイできます。
展開するために NCache Service Fabricクラスターでは、クラウドアプリケーション内にデプロイする必要がある主なコンポーネントは次のとおりです。
NCache Discovery Serviceは、ステートレスで信頼性の高いWeb APIであり、 NCache に情報を提供するサーバー NCache クライアント。 この情報で NCache クライアントがクラスター化されたキャッシュで操作を実行するのに役立つキャッシュハンドルを作成します。 The NCache 検出サービスは、Service Fabricネーミングサービスと相談して、その上にあるコンテナのIPアドレスを取得します。 NCache サーバーが実行されています。
<ServiceTypes>
<StatelessServiceType ServiceTypeName="NCacheDiscoveryType" />
</ServiceTypes>
<CodePackage Name="Code" Version="1.0.0">
<EntryPoint>
<ExeHost>
<Program>NCacheDiscovery.exe</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
...
</CodePackage>
<ConfigPackage Name="Config" Version="1.0.0" />
...
</ServiceManifest>
このサービスは、のDockerイメージを使用するコンテナサービスです。 NCache。 このサービスにより NCache コンテナ内で実行されているサーバーがホスト間で相互に通信し、を使用してキャッシュクラスタを形成します。 Open 構成モードで、通信に必要なポートを公開します。
<ServiceTypes>
<StatelessServiceType ServiceTypeName="NCacheServiceType" UseImplicitHost="true" />
. . .
<ContainerHost>
<ImageName>alachisoft/ncache</ImageName>
</ContainerHost>
. . .
<Resources>
<Endpoints>
<Endpoint Name="cache-management" Protocol="tcp" UriScheme="tcp" Port="8250" CodePackageRef="Code" />
</Endpoints>
</Resources>
このサービスは、 NCache キャッシュ内の管理および監視操作を実行するためのWebマネージャー。 このサービスは、 NCache クラスタサービスはを使用します。 分離する理由 NCache からの管理サービス NCache クラスタサービスでは、オープン構成モードでは、ホストからポートへのマッピングは許可されません。 NCache Web Managerには、ホストポートを提供してアクセスする必要があります。このために、 NCache 管理サービスはで作成されます NAT モード。
<ServiceTypes>
<StatelessServiceType ServiceTypeName="NCacheWebManagerType" UseImplicitHost="true" />
</ServiceTypes>
. . .
<ContainerHost>
<ImageName>alachisoft/ncache</ImageName>
</ContainerHost>
. . .
<Resources>
<Endpoints>
<Endpoint Name="web-management" Protocol="http" UriScheme="http" Port="8251" Type="Input" CodePackageRef="Code" />
</Endpoints>
</Resources>
このサービスにより、複数のノード上のコンテナーが相互に通信できるようになります。 このサービスは、キャッシュクラスターを監視するためのクライアント側カウンターを取得するために使用されます。
これらすべてのサービスは成功をもたらします NCache キャッシュクラスターを作成し、そのクラスターで監視および管理操作を実行するためのサービスファブリッククラスター内のデプロイメント。 このサービスは、 NCache 代わりに、コンテナのIPアドレスをクライアントに提供する検出サービス。
<ServiceManifest Name="ClientContainerPkg" . . .>
<ServiceTypes>
<StatelessServiceType ServiceTypeName="ClientContainerType" UseImplicitHost="true" />
</ServiceTypes>
. . .
<ContainerHost>
<ImageName>ncache/apps:sfclient</ImageName>
</ContainerHost>
. . .
</ServiceManifest>
NCache また、サービスファブリック仮想マシンスケールセットに含まれていない仮想マシン上にある場合、サービスファブリックサービスからアクセスすることもできます。 この場合、 NCache サービス検出は不要であり、アプリケーションに次のIPアドレスを提供できます。 NCache サーバー。 アクセスするために NCache Service Fabricクラスターの外部から、client.ncconfで、またはによって提供されるCacheConnectionOptionsAPIを介して正しいIPアドレスを提供できます。 NCache。 これにより、マイクロサービスとのシームレスな通信が可能になります NCache ServiceFabricクラスターの外部。