Microsoft Service Fabric은 Azure, 온-프레미스 또는 기타 클라우드 플랫폼에서 실행 중인 조직에 안정적이고 확장 가능하며 민첩한 애플리케이션을 제공하기 위해 마이크로 서비스 기반 애플리케이션의 구축 및 배포를 간소화하는 애플리케이션 플랫폼입니다. Azure Service Fabric은 상태 모니터링 기능을 제공하고 다양한 기본 제공 프로그래밍 모델을 제공하여 클라우드 기반 애플리케이션 개발을 간소화합니다.
NCache .NET 및 Java 애플리케이션에 대한 확장성이 뛰어난 접근 방식을 제공하는 메모리 내 분산 캐싱 솔루션입니다. NCache 또한 Service Fabric 및 Kubernetes와 같은 다양한 클라우드 플랫폼에 대한 지원을 제공합니다. 하늘빛, 아마존 EKS 과 Red Hat OpenShift. 최대 트랜잭션 로드에서 클라우드 애플리케이션의 성능과 확장성을 향상시킵니다. 다음 다이어그램은 배포를 보여줍니다. NCache Azure 서비스 패브릭에서:
NCache 다음과 같은 방법으로 Azure Service Fabric을 사용하여 배포할 수 있습니다.
배포하려면 NCache Service Fabric 클러스터에서 클라우드 애플리케이션 내에 배포해야 하는 주요 구성 요소는 다음과 같습니다.
NCache Discovery Service는 서버의 IP 주소에 대한 실시간 정보를 가져오는 신뢰할 수 있는 상태 비저장 웹 API입니다. NCache 정보를 제공하는 서버 NCache 클라이언트. 이 정보로 NCache 클라이언트가 클러스터된 캐시에서 작업을 수행하는 데 도움이 될 수 있는 클라이언트용 캐시 핸들을 만듭니다. 그만큼 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 컨테이너 내에서 실행되는 서버는 호스트를 통해 서로 통신하여 캐시 클러스터를 형성합니다. 엽니다 통신에 필요한 포트를 노출합니다.
<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 캐시에서 관리 및 모니터링 작업을 수행하기 위한 웹 관리자. 이 서비스는 동일한 이미지를 사용합니다. NCache 클러스터 서비스 사용. 를 분리하는 이유 NCache 에서 관리 서비스 NCache 클러스터 서비스는 Open 구성 모드에서 호스트-포트 매핑이 허용되지 않는다는 것입니다. 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 또는 다음에서 제공하는 CacheConnectionOptions API를 통해 올바른 IP 주소를 제공할 수 있습니다. NCache. 이를 통해 마이크로서비스와 원활한 통신이 가능합니다. NCache Service Fabric 클러스터 외부.