• Facebook
  • 트위터
  • 유튜브
  • 라인드인
  • RSS
  • 기술 문서
  • 비교
  • 블로그
  • 다운로드
  • 문의하기
다운로드
목차 표시/숨기기

캐시에 연결하는 방법

애플리케이션을 연결하세요 NCache 온프레미스, 클라우드 및 컨테이너 환경 전반에 걸쳐 안전하고 안정적이며 고가용성을 갖춘 캐시 연결을 제공합니다. 이 페이지에서는 사용 방법을 설명합니다. NCache 주로 CacheManager.GetCache()와 같은 API를 사용하여 하나 또는 여러 개의 분산 캐시에 연결하고, 재시도, 연결 유지, 로드 밸런싱을 구성하고, 보안 자격 증명을 사용하여 인증할 수 있습니다. 로컬 네트워크, 공용 클라우드 IP 또는 로드 밸런서를 통해 배포하는 경우에도 사용 가능합니다. NCache 클라이언트와 클러스터 간의 원활한 통신을 보장합니다.

이 가이드에서는 CacheConnectionOptions를 사용하여 캐시 연결을 사용자 지정하는 방법, 클러스터형 캐시 및 클라이언트 캐시에 연결하는 방법, 일반적인 연결 문제를 해결하는 방법도 배울 수 있습니다. .NET, Java, Python 및 Node.js를 아우르는 예제를 통해 개발자가 캐시를 빠르게 통합할 수 있도록 지원합니다. NCache 성능, 확장성 및 내결함성을 유지하면서 기존 애플리케이션에 통합합니다.

  • 기본 연결(로컬 네트워크): 사용하는 경우 NCache 로컬 네트워크를 통해 온프레미스에서 사용할 수 있습니다. 개인 서버 IP. 그러나 이것이 항상 가능한 것은 아니므로, NCache 아래에서 설명하는 바와 같이 잠재적인 문제를 해결하기 위한 다양한 API를 제공합니다. 예를 들어, 단일 애플리케이션 내에서 클러스터 캐시와 클라이언트 캐시를 모두 초기화해야 하는 경우가 있을 수 있습니다. 이 경우, 다음을 사용할 수 있습니다. 캐시 가져오기 두 캐시를 모두 초기화하는 방법입니다. 마찬가지로, 캐시에 대한 무단 액세스를 방지하고 보안을 활성화한 경우 다음을 사용하여 원활한 연결을 보장할 수 있습니다. 보안 API.

  • LoadBalancer와의 연결: 그러나 애플리케이션이 다음과 같이 배포된 경우 로드밸런서 모든 서버에 연결하여 트랜잭션 부하를 관리할 수 있습니다. NCache IsLoadBalancer 캐시 연결을 보장하는 API입니다.

  • 클라우드에서 공용 IP를 사용한 연결: 이 옵션을 사용하는 경우 다음을 통해 캐시 서버 IP를 설정할 수 있습니다. 클라이언트.ncconf 파일입니다. 이 프로세스는 자세히 설명되어 있습니다. 이하. 그리고 연결하고 싶다면 NCache Cloud 개인 IP 주소를 사용하는 서버이고 공용 네트워크를 통해 통신해야 하는 경우 캐시 서버에 공용 IPv4 주소를 할당할 수 있습니다. NCache 클러스터를 실행하여 Set-CacheServerPublicIP cmdlet.

  • 포트 포워딩을 사용한 연결: 배포 시 NCache in 컨테이너화된 환경효과적인 접근 방식 중 하나는 다음과 같습니다. 고정 IP 주소 할당 에 NCache 사용자 지정 네트워크 내의 컨테이너. 이 설정을 통해 클라이언트 애플리케이션은 일관된 IP 주소를 사용하여 캐시 서버에 안정적으로 연결할 수 있으며, 다양한 네트워크 환경에서도 안정적인 통신이 가능합니다.

중대한

.NET 8.0에 대한 스레드 풀 설정

  • 럭셔리 Windows, 설정하는 것이 필수입니다. UseWindowsThreadPool 플래그 참된. 이미 빌드된 애플리케이션의 경우 다음을 설정합니다. UseWindowsThreadPool 에 깃발 런타임 구성.json 파일 :

    {
      "runtimeOptions": {
         "configProperties": {
            "System.Threading.ThreadPool.UseWindowsThreadPool": true
         }
      }
    }
    

    개발 단계에서는 이 파일이 컴파일할 때마다 덮어쓰여집니다. 따라서 다음을 정의하세요. UseWindowsThreadPool 대신 프로젝트 파일에 다음과 같이 속성을 추가하세요.

    <Project Sdk="Microsoft.NET.Sdk">
    
     <PropertyGroup>
       <UseWindowsThreadPool>true</UseWindowsThreadPool>
     </PropertyGroup>
    
    </Project>
    

    에 대한 자세한 내용을 보려면 UseWindowsThreadPool 플래그를 클릭 여기에서 확인하세요.

  • 럭셔리 Linux, 필수로 설정해야 합니다. MinimumThreads 플래그를 값으로 100 인간을 런타임 구성.json, 다음과 같이 :

    {
       "runtimeOptions": {
          "configProperties": {
             "System.Threading.ThreadPool.MinThreads": 100
          }
       }
    }
    

    에 대한 자세한 내용을 보려면 MinThreads 플래그를 클릭 여기에서 확인하세요.

사전 조건

사용하기 전에 NCache 클라이언트 측 API를 사용할 때는 다음 필수 조건을 충족해야 합니다.

  • . NET
  • 자바
  • Python
  • Node.js를
  • 레거시 API
  • .NET 클라이언트 애플리케이션에 다음 NuGet 패키지를 설치하세요.
    • 기업 : Alachisoft.NCache.SDK
    • 오픈 소스 : Alachisoft.NCache오픈소스 SDK
  • 애플리케이션에 다음 네임스페이스를 포함합니다.
    • Alachisoft.NCache.고객
    • Alachisoft.NCache.런타임.예외
  • 캐시가 실행 중이어야 합니다.
  • 추가되는 데이터가 직렬화 가능.
  • API 세부 정보는 다음을 참조하세요. 아이캐시, 캐시매니저, 캐시 가져오기, 캐시 연결 옵션, 재시도 간격, 연결 재시도, KeepAlive 활성화, KeepAlive간격, 서버 목록, 서버 정보, 로드밸런스, 격리 수준, 모드, 신임장, 사용자 자격 증명, 자격 증명을 사용하여 생성, CreateWithGMSA, 보안 옵션.
  • Java 클라이언트 애플리케이션에 대해 다음 Maven 종속성을 추가합니다. pom.xml 파일 :
<dependency>
    <groupId>com.alachisoft.ncache</groupId>
    <!--for NCache Enterprise-->
    <artifactId>ncache-client</artifactId>
    <version>x.x.x</version>
</dependency>
  • Java 클라이언트 애플리케이션에서 다음 패키지를 가져옵니다.
    • import **클라이언트 이름**
    • import com.alachisoft.ncache.런타임.예외.*;
  • 캐시가 실행 중이어야 합니다.
  • 추가되는 데이터가 직렬화 가능.
  • API 세부 정보는 다음을 참조하세요. 캐시, 캐시매니저, 캐시 가져오기, 캐시 연결 옵션, 시간 범위, setRetryInterval, setEnableKeepAlive, setConnection재시도, setKeepAliveInterval, setLoadBalance, setIsolationLevel, 신임장, setUserCredentials.
  • Python 클라이언트 애플리케이션에 다음 패키지를 설치하세요.
    • 기업 : ncache-클라이언트
  • 애플리케이션에서 다음 패키지를 가져옵니다.
    • 에 ncache.client 가져오기*
  • 캐시가 실행 중이어야 합니다.
  • 추가되는 데이터가 직렬화 가능.
  • API 세부 정보는 다음을 참조하세요. 캐시, 캐시매니저, get_cache, 캐시 연결 옵션, 재시도 간격 설정, 연결_재시도 설정, 유지_간격_설정, 부하균형 설정, 격리 수준 설정, 신임장, 사용자 자격 증명 설정.
  • Node.js 클라이언트 애플리케이션에 다음 모듈을 설치하고 포함시키세요.
    • 기업 : ncache-클라이언트
  • 애플리케이션에 다음 클래스를 포함합니다.
    • 캐시
  • 캐시가 실행 중이어야 합니다.
  • 추가되는 데이터가 직렬화 가능.
  • API 세부 정보는 다음을 참조하세요. 캐시, 캐시매니저, 캐시 가져오기, 캐시 연결 옵션, setRetryInterval, 시간 범위, setKeepAliveInterval, setLoadBalance, setIsolationLevel, 신임장, setUserCredentials.
  • .NET 클라이언트 애플리케이션에 다음 NuGet 패키지 중 하나를 설치하세요.
    • 기업 : Install-Package Alachisoft.NCache.SDK -Version 4.9.1.0
  • 새로운 콘솔 애플리케이션을 만듭니다.
  • 추가되는 데이터가 직렬화 가능.
  • 추가 NCache 참고자료 위치를 찾아서 %NCHOME%\NCache\bin\assembly\4.0 추가 Alachisoft.NCache.Web Alachisoft.NCache.Runtime 적절한.
  • 포함시키다 Alachisoft.NCache.Web.Caching Alachisoft.NCache.Web.Security 애플리케이션의 네임스페이스.
  • 에 대한 자세한 내용을 보려면 NCache 레거시 API를 다운로드하세요 NCache 4.9 문서는 다음과 같이 사용 가능합니다. .지퍼 에 파일 Alachisoft 웹 사이트.

싱글 캐시에 연결하는 방법

NCache ~을 제공하다 ICache 인스턴스를 얻기 위한 인터페이스 NCache의 캐시입니다. 더욱이, CacheManager 클래스를 통해 캐시 인스턴스에 연결할 수 있습니다. GetCache 메서드. 다음 예제는 실행 상태인 demoCache라는 캐시에 연결합니다.

  • . NET
  • 자바
  • Python
  • Node.js를
  • 레거시 API
try
{
  // Specify the cache name
  string cacheName = "demoCache";

  // Connect to cache
  ICache cache = CacheManager.GetCache(cacheName);
}
catch (OperationFailedException ex)
{
      // NCache specific exception
      if (ex.ErrorCode == NCacheErrorCodes.NO_SERVER_AVAILABLE)
      {
            // Make sure NCache Service and cache is running
      }
      else
      {
            // Exception can occur due to:
            // Connection Failures
            // Operation Timeout
            // Operation performed during state transfer
      }
}
catch (ConfigurationException ex)
{
      if(ex.ErrorCode == NCacheErrorCodes.SERVER_INFO_NOT_FOUND)
      {     
            // client.ncconf must have server information
      }
}
catch (Exception ex)
{
      // Any generic exception like ArgumentNullException or ArgumentException
      // Argument exception occurs in case of empty string name
}
try 
{
  // Specify the cache name
  String cacheName = "demoCache";

  // Connect to cache
  Cache cache = CacheManager.getCache(cacheName);

} 
catch (OperationFailedException exception) 
{

  // NCache specific exception
  if (exception.getErrorCode() == NCacheErrorCodes.NO_SERVER_AVAILABLE) 
  {
        // Make sure NCache service and cache are running
  } else 
  {
        // Exception can occur due to:
        // Connection failures
        // Operation timeout
        // Operation performed during state transfer
  }
} 
catch (ConfigurationException exception) 
{
if (exception.getErrorCode() == NCacheErrorCodes.SERVER_INFO_NOT_FOUND) 
{
      // client.ncconf must have server information
}
} 
catch (Exception exception) 
{
      // Any generic exception
}
try:
    # Specify the cache name
    cache_name = "demoCache"

    # Connect to cache
    cache = ncache.CacheManager.get_cache(cache_name)

except Exception as error:
    # Handle any exceptions
    print(f"An error occurred: {error}")
try 
{
  // Specify the cache name
  let cacheName = "demoCache";

  // Connect to cache
  let cache = await ncache.CacheManager.getCache(cacheName);

} catch (error) 
{
    // Handle any exceptions
}
// Using NCache Enterprise 4.9.1

try
{
  // Specify the cache name
  string cacheName = "demoCache";

  // Connect to cache
  cache = NCache.InitializeCache(cacheName);
}
catch (OperationFailedException ex)
{
      // NCache specific exception
      if (ex.ErrorCode == NCacheErrorCodes.NO_SERVER_AVAILABLE)
      {
            // Make sure NCache Service and cache is running
      }
      else
      {
            // Exception can occur due to:
            // Connection Failures
            // Operation Timeout
            // Operation performed during state transfer
      }
}
catch (ConfigurationException ex)
{
      if(ex.ErrorCode == NCacheErrorCodes.SERVER_INFO_NOT_FOUND)
      {     
            // client.ncconf must have server information
      }
}
catch (Exception ex)
{
      // Any generic exception like ArgumentNullException or ArgumentException
      // Argument exception occurs in case of empty string name
}
주의 사항

작업이 안전하도록 하려면 에 설명된 대로 응용 프로그램 내에서 잠재적인 예외를 처리하는 것이 좋습니다. 처리 실패.

여러 캐시에 연결하는 방법

사용법 - GetCache 이 방법을 사용하면 단일 애플리케이션 내에서 여러 캐시에 연결할 수 있습니다. 이를 통해 하나의 애플리케이션에서 여러 캐시의 데이터를 관리하는 데 도움이 됩니다. 다음 예제는 동일한 클라이언트에서 demoCache와 demoClusteredCache라는 두 캐시에 연결합니다.

  • . NET
  • 자바
  • Python
  • Node.js를
  • 레거시 API
// Specify cache names
string cacheName1 = "demoCache";
string cacheName2 = "demoClusteredCache";

// Connect to the caches
ICache cache1 = CacheManager.GetCache(cacheName1);
ICache cache2 = CacheManager.GetCache(cacheName2);
// Specify cache names
String cacheName1 = "demoCache";
String cacheName2 = "demoClusteredCache";

// Connect to the caches
Cache cache1 = CacheManager.getCache(cacheName1);
Cache cache2 = CacheManager.getCache(cacheName2);
# Specify cache names
cache_name_1 = "demoCache"
cache_name_2 = "demoClusteredCache"

# Connect to the caches
cache_1 = ncache.CacheManager.get_cache(cache_name_1)
cache_2 = ncache.CacheManager.get_cache(cache_name_2)
// Specify cache names
let cacheName1 = "demoCache";
let cacheName2 = "demoClusteredCache";

// Connect to the caches
let cache1 = await ncache.CacheManager.getCache(cacheName1);
let cache2 = await ncache.CacheManager.getCache(cacheName2);
// Using NCache Enterprise 4.9.1
// Specify cache names
string cacheName1 = "demoCache";
string cacheName2 = "demoClusteredCache";

// Connect to the caches
Cache cache1 = NCache.InitializeCache(cacheName1);
Cache cache2 = NCache.InitializeCache(cacheName2);

CacheConnectionOptions를 사용하여 캐시에 연결하는 방법

The CacheConnectionOptions 캐시에 대한 연결을 설정하는 동안 캐시 속성 값을 지정할 수 있습니다. 이 값은 다음을 통해 구성할 수 있는 것과 동일합니다. 클라이언트.ncconf 파일.

주의 사항

다음을 통해 지정된 모든 구성 CacheConnectionOptions 값을 덮어씁니다 클라이언트.ncconf 그 특정 클라이언트를 위해.

이 예에서는 재시도 간격, 연결 재시도, KeepAlive 활성화예산 및 KeepAlive간격 속성은 변경될 수 있습니다. 이 애플리케이션의 경우 클라이언트 구성 파일에 지정된 값 대신 이러한 값이 사용됩니다.

  • . NET
  • 자바
  • Python
  • Node.js를
  • 레거시 API
// Create new CacheConnectionOptions instance
var options = new CacheConnectionOptions();

// Specify the cache connection options to be set
options.RetryInterval = TimeSpan.FromSeconds(5);
options.ConnectionRetries = 2;
options.EnableKeepAlive = true;
options.KeepAliveInterval = TimeSpan.FromSeconds(30);

// Specify the cache name
string cacheName = "demoCache";

// Connect to cache with CacheConnectionOptions
ICache cache = CacheManager.GetCache(cacheName, options);
// Create new CacheConnectionOptions instance
CacheConnectionOptions options = new CacheConnectionOptions();

// Specify the cache connection options to be set
TimeSpan retryInterval = new TimeSpan(0, 0, 5);
options.setRetryInterval(retryInterval);
options.setConnectionRetries(2);

TimeSpan keepAliveInterval = new TimeSpan(0, 0, 30);
options.setKeepAliveInterval(keepAliveInterval);

// Specify the cache name
String cacheName = "democache";

// Connect to cache with CacheConnectionOptions
Cache cache = CacheManager.getCache(cacheName, options);
# Create new CacheConnectionOptions instance
options = ncache.CacheConnectionOptions()

# Specify the cache connection options to be set
retry_interval = ncache.TimeSpan(0, 0, 5)
keep_alive_interval = ncache.TimeSpan(0, 0, 30)

options.set_retry_interval(retry_interval)
options.set_connection_retries(2)
options.set_keep_alive_interval(keep_alive_interval)

# Specify the cache name
cache_name = "demoCache"

# Connect to cache with CacheConnectionOptions
cache = ncache.CacheManager.get_cache(cache_name, options)
// Create new CacheConnectionOptions instance
let options = new ncache.CacheConnectionOptions();

// Specify the cache connection options to be set
let retryInterval = new ncache.TimeSpan(0, 0, 5);

options.setRetryInterval(retryInterval);
options.setConnectionRetries(2);

let keepAliveInterval = new ncache.TimeSpan(0, 0, 30);
options.setKeepAliveInterval(keepAliveInterval);

// Specify the cache name
let cacheName = "demoCache";

// Connect to cache with CacheConnectionOptions
let cache = await ncache.CacheManager.getCache(cacheName, options);
// Using NCache Enterprise 4.9.1
// Create new InitParam instance
CacheInitParams initParam = new CacheInitParams();
initParam.RetryInterval = 5;
initParam.ConnectionRetries = 2;
initParam.EnableKeepAlive = true;
initParam.KeepAliveInterval = 30;

// Specify the cache name
string cacheName = "demoCache";

// Connect to cache with CacheInitParams
Cache cache = NCache.InitializeCache(cacheName, initParam);

로드 밸런서의 CacheConnectionOptions를 사용하여 캐시에 연결하는 방법

종종 애플리케이션 배포에서는 로드 밸런서를 사용하여 서버의 요청이 너무 많은 것을 방지합니다. 즉, 클라이언트가 서버에 직접 액세스하는 것을 방지합니다. 이러한 상황에서 클러스터가 모든 서버에 연결되도록 하려면 다음을 수행하십시오. NCache 를 제공합니다 IsLoadBalancer API는 아래와 같습니다.

  • . NET
CacheConnectionOptions cacheConnectionOptions = new CacheConnectionOptions();
cacheConnectionOptions.ServerList = new List<ServerInfo>()
{
    new ServerInfo(true, "20.200.20.40", 9800)
};
ICache cache = CacheManager.GetCache("demoCache", cacheConnectionOptions);
주의 사항

방법에 대해 자세히 알아보기 NCache 이러한 로드 밸런서를 다룹니다. 여기에서 확인하세요.

보안 API를 사용하여 캐시에 연결하는 방법

당신은 또한 사용할 수 있습니다 SecurityOptions 캐시 연결에 대한 인증을 구성하는 클래스입니다. gMSA 기반의 암호 없는 인증을 활성화하거나 명시적인 사용자 자격 증명을 제공하는 두 가지 방법이 있습니다.

gMSA 보안을 사용하여 연결하세요

NCache 당신이 사용할 수 있습니다 그룹 관리 서비스 계정 gMSA(gradiative Multi-System Architecture)는 캐시에 연결할 때 안전하고 암호가 필요 없는 인증을 제공합니다. gMSA 인증을 활성화하면 클라이언트 애플리케이션은 Active Directory에서 관리하는 시스템에 구성된 gMSA ID를 사용합니다.

중대한

클라이언트 애플리케이션은 구성된 gMSA 사용자 권한으로 실행되어야 한다는 점에 유의하십시오.

다음 예제는 gMSA 기반 인증을 사용하여 캐시에 연결하는 방법을 보여줍니다. CreateWithGMSA 방법.

  • . NET
string cacheName = "demoCache";

var cacheConnectionOptions = new CacheConnectionOptions();

// If the user wants to use GMSA, they can set the Security property to use GMSA credentials
cacheConnectionOptions.Security = SecurityOptions.CreateWithGMSA();

ICache cache = CacheManager.GetCache(cacheName, cacheConnectionOptions);

CreateWithCredentials API를 사용하여 연결

이 예제는 캐시에 연결하는 방법을 보여줍니다. CreateWithCredentials 사용자 이름/비밀번호 인증 방식.

  • . NET
string cacheName = "demoCache";

var cacheConnectionOptions = new CacheConnectionOptions();

// If the user wants to use username/password credentials, they can set the Security property to use those credentials
cacheConnectionOptions.Security = SecurityOptions.CreateWithCredentials("your-username", "your-password");

ICache cache = CacheManager.GetCache(cacheName, cacheConnectionOptions);

클러스터형 캐시 및 클라이언트 캐시에 연결하는 방법

주의 사항

사용법 - GetCache 클러스터링된 클라이언트 캐시에 단일 호출로 연결하는 방법 추천하지 않습니다..

다음을 사용하여 단일 호출로 클러스터링 및 클라이언트 캐시에 연결할 수 있습니다. GetCache 방법. 이렇게 하면 단일 애플리케이션 내에서 두 캐시가 모두 초기화되므로 하나의 애플리케이션을 통해 여러 캐시의 데이터를 관리하는 데 도움이 됩니다.

주의 사항

로컬 캐시가 클라이언트 캐시에 연결된 경우 직렬화는 클러스터 캐시의 직렬화와 동일해야 합니다. 두 캐시 모두 이전에 구성되어야 하며 실행 중 상태여야 합니다.

다음 예에서는 다음을 사용하여 두 개의 캐시에 연결합니다. GetCache 방법.

  • . NET
  • 자바
  • Python
  • Node.js를
  • 레거시 API
// Specify the cache names
string clusteredCache = "demoCache";
string clientCache = "myClientCache";

// Create and set CacheConnectionOptions for clustered cache
CacheConnectionOptions cacheConnectionOptions = new CacheConnectionOptions();
cacheConnectionOptions.LoadBalance = true;
cacheConnectionOptions.ConnectionRetries = 5;

// Create and set CacheConnectionOptions for Client Cache
CacheConnectionOptions clientCacheConnectionOptions = new CacheConnectionOptions();
clientCacheConnectionOptions.LoadBalance = true;
clientCacheConnectionOptions.ConnectionRetries = 5;
clientCacheConnectionOptions.Mode = IsolationLevel.OutProc;

// Connect to the caches in a single call
ICache cache = CacheManager.GetCache(clusteredCache, cacheConnectionOptions, clientCache, clientCacheConnectionOptions);
// Specify cache names
String clusteredCache = "demoCache";
String clientCache = "myClientCache";

// Create and set CacheConnectionOptions for clustered cache
CacheConnectionOptions cacheConnectionOptions = new CacheConnectionOptions();
cacheConnectionOptions.setLoadBalance(true);
cacheConnectionOptions.setConnectionRetries(5);

// Create and set CacheConnectionOptions for Client Cache
CacheConnectionOptions clientCacheConnectionOptions = new CacheConnectionOptions();
clientCacheConnectionOptions.setLoadBalance(true);
clientCacheConnectionOptions.setConnectionRetries(5);
clientCacheConnectionOptions.setIsolationLevel(IsolationLevel.OutProc);

// Connect to caches in single call
Cache cache = CacheManager.getCache(clusteredCache, cacheConnectionOptions, clientCache, clientCacheConnectionOptions);
# Specify cache names
clustered_cache = "demoCache"
client_cache = "myClientCache"

# Create and set CacheConnectionOptions for clustered cache
cache_connection_options = ncache.CacheConnectionOptions()
cache_connection_options.set_load_balance(True)
cache_connection_options.set_connection_retries(5)

# Create and set CacheConnectionOptions for Client Cache
client_cache_connection_options = ncache.CacheConnectionOptions()
client_cache_connection_options.set_load_balance(True)
client_cache_connection_options.set_connection_retries(5)
client_cache_connection_options.set_isolation_level(ncache.IsolationLevel.OUT_PROC)

# Connect to both of the caches in a single call
cache = ncache.CacheManager.get_cache(clustered_cache, cache_connection_options, client_cache, client_cache_connection_options)
// Specify cache names
let clusteredCache = "demoCache";
let clientCache = "myClientCache";

// Create and set CacheConnectionOptions for clustered cache
let cacheConnectionOptions = new ncache.CacheConnectionOptions();
cacheConnectionOptions.setLoadBalance(true);
cacheConnectionOptions.setConnectionRetries(5);

// Create and set CacheConnectionOptions for Client Cache
let clientCacheConnectionOptions = new ncache.CacheConnectionOptions();
clientCacheConnectionOptions.setLoadBalance(true);
clientCacheConnectionOptions.setConnectionRetries(5);
clientCacheConnectionOptions.setIsolationLevel(ncache.IsolationLevel.OutProc);

// Connect to caches in single call
// CacheConnectionOptions which can be null if not required
let cache = await ncache.CacheManager.getCache(clusteredCache, cacheConnectionOptions, clientCache, clientCacheConnectionOptions);
// Using NCache Enterprise 4.9.1
// Specify cache names
string clusteredCache = "demoCache";
string clientCache = "myClientCache";

// Create and set CacheInitParams for clustered cache
CacheInitParams initParam = new CacheInitParams();
initParam.LoadBalance = true;
initParam.CommandRetries = 5;

// Create and set CacheInitParams for Client Cache
CacheInitParams clientInitParam = new CacheInitParams();
clientInitParam.LoadBalance = true;
clientInitParam.CommandRetries = 5;
clientInitParam.ClientCacheSyncMode = ClientCacheSyncMode.Optimistic;

// Connect to caches in single call
Cache cache = NCache.InitializeCache(clusteredCache, clientCache);

공용 IP를 사용하여 캐시에 연결하는 방법

구독하셨다면 NCache Cloud 공용 IP 연결 옵션을 선택했습니다. 수정해야 합니다. 클라이언트.ncconf 파일을 다르게 설정하고 캐시 클러스터 내에서 캐시 서버가 개인 IP를 사용한다는 사실에도 불구하고 캐시 서버의 공개 IP가 언급되었는지 확인하세요.

를 참조하십시오 클라이언트.ncconf 드리겠습니다.

주의 사항

캐시 서버를 사용할 때 연결할 수 없는 경우 NCache Cloud 개인 IP 주소를 사용하고 있는데 공용 네트워크를 사용해야 하는 경우, 공용 IP를 구성해야 합니다. 이를 위해 다음 명령을 실행하세요. Set-CacheServerPublicIP 해당 캐시 서버에 대한 cmdlet을 사용하여 캐시 서버에 공용 IPv4 주소를 할당합니다. NCache 클러스터.

문제해결

포트에 접근할 수 없습니다

방화벽 구성으로 인해 클라이언트가 캐시에 연결하지 못하는 경우도 있습니다.

해결 방법: 우리의 세부 사항을 사용하십시오 설치 설명서 방화벽 설정을 변경하려면

client.ncconf를 찾을 수 없습니다.

때로는 클라이언트가 해당 항목을 찾지 못할 수도 있습니다. 클라이언트.ncconf 캐시에 연결하는 동안 파일. 이런 경우가 발생합니다. NCache 디렉토리 (%NCHOME%)이 설정되지 않았습니다.

해결 방법

If %NCHOME% 설정되지 않은 경우 아래 단계에 따라 환경 변수를 설정하세요.

  • 마우스 오른쪽 버튼으로 스타트 버튼을 선택합니다 시스템.
  • 오른쪽 창에서를 클릭하십시오. 고급 시스템 설정.
  • . 시스템 속성 창으로 이동 Advnaced 탭을 클릭하고 환경 변수 버튼을 클릭합니다.
  • . 환경 변수 창, 아래 시스템 변수, 클릭 새 소식.
  • 럭셔리 변수 이름, 입력 %NCHOME%.
  • 럭셔리 변수 값, 입력 C:\Program Files\NCache.
  • OK.
  • 이제 동일한 시스템 경로를 업데이트하려면 환경 변수 창, 찾기 경로 변수를 클릭하고 편집.
  • . 환경 변수 편집 창을 클릭합니다 새 소식 그리고 추가 %NCHOME%\bin 목록에. 이렇게 하면 도구를 전 세계적으로 사용할 수 있습니다.
  • OK 각 창을 닫습니다.

요청을 처리하는 데 사용할 수 있는 서버가 없습니다.

때때로 클라이언트/서버 포트가 방화벽에 의해 차단되어 클라이언트가 캐시에 연결할 수 없는 경우가 있습니다.

해결 방법

클라이언트/서버 포트(해당 포트)가 올바른지 확인하십시오. NCache 서비스가 시작되고 다른 클라이언트 연결을 허용함)가 방화벽에 의해 차단되지 않습니다. 이 포트의 기본값은 '9800'입니다. 기본값을 다음에서 변경할 수 있습니다. Alachisoft.NCache.서비스.exe.config or Alachisoft.NCache.Service.dll.config 파일.

서버 노드와 통신할 수 없습니다.

클러스터 노드들은 방화벽에 의해 클러스터 포트가 차단되어 서로 통신할 수 없는 경우도 있습니다.

Error: "Unable to communicate with server node"

해결 방법

방화벽에서 클라이언트/서버 포트와 클러스터 포트가 허용되는지 확인하십시오. 클러스터 포트는 클러스터 내 노드들이 통신하는 데 사용되는 포트입니다. 이러한 포트의 기본값은 다음에서 변경할 수 있습니다. NCache 관리 센터. 포트 범위를 지정한 경우 NCache 관리 센터에서 범위 내 모든 포트의 차단을 해제하세요.

클라이언트 소켓 교착 상태

캐시 서버의 응답을 오래 기다리기 때문에 클라이언트 소켓에서 교착 상태가 발생할 수 있습니다. 이로 인해 성능 문제를 일으킬 수 있는 많은 대기 스레드가 발생할 수도 있습니다.

해결 방법

1단계: 서버 측 변경 사항

서비스 구성 파일로 이동합니다.

  • Windows: Alachisoft.NCache.Service.dll.config 에 위치한 %NCHOME%\bin\서비스
  • Linux: Alachisoft.NCache.Daemon.dll.config 에 위치한 /opt/ncache/bin/서비스

구성 파일에 다음 줄을 추가합니다.

<add key ="NCacheServer.EnableBadClientDetection" value = "true"/>

가치 참된 표시 BadClientDetection 클라이언트 소켓에서 이 활성화되어 있습니다. 즉, 이제 클라이언트 소켓에서 교착 상태가 발생하면 소켓이 재설정됩니다. 이 속성의 기본값은 다음과 같습니다. 그릇된.

<add key ="NCacheServer.ClientSocketSendTimeout" value = "10"/>

활성화했을 때 BadClientDetection교착 상태 발생 시 소켓이 재설정되는 시간 간격을 지정할 수 있습니다. 이 속성의 기본값은 다음과 같습니다. 10 그리고 이 값은 다음보다 작을 수 없습니다. 1.

몇 가지 다른 속성도 도입되었습니다. Alachisoft.NCache.서비스.exe.config 이 문제에 도움이 됩니다. 이러한 속성을 다음과 같이 구성하십시오.

<add key ="NCacheServer.EventPriorityRatio" value="30"/>

서버 측에서는 이벤트 및 캐시 작업에 우선 순위 대기열이 사용됩니다. 라는 속성을 통해 이 대기열에 대한 이벤트 및 캐시 작업의 비율을 구성할 수 있습니다. EventPriorityRatio. 이 속성의 기본값은 다음과 같습니다. 30 비율을 나타냅니다 30:70 이벤트 및 캐시 작업의 경우 이 속성의 값은 다음보다 작을 수 없습니다. 1.

<add key ="NCacheServer.EventBulkCount" value="50"/>

캐시 서버가 이제 클라이언트에 이벤트를 대량으로 전송합니다. 이 속성을 통해 대량으로 전송할 항목 수를 설정할 수 있습니다. 기본적으로 이 값은 50 그리고 값은 다음보다 작을 수 없습니다. 1. 이것은 클라이언트 버전에서 사용 가능합니다. 4124 이상.

<add key ="NCacheServer.EventBulkCollectionInterval" value="2"/>

이 속성은 대량 이벤트 수가 최대 개수에 도달하지 못한 경우에도 대량 이벤트가 실행되는 시간 간격(초)을 설정하는 데 사용됩니다. EventBulkCount 사용자가 지정한 값입니다. 이 속성의 기본값은 다음과 같습니다. 2 초 그리고 값은 다음보다 작을 수 없습니다. 1.

다시 시작하십시오. NCache 이러한 변경 사항이 적용되도록 서비스를 제공합니다.

2단계: 클라이언트 측 변경

귀하의 앱 구성/웹.구성 파일 :

<configuration>
    <appSettings>
          <add key ="NCacheClient.AsynchronousEventNotification" value="true"/>
          <add key ="NCacheClient.NumberofEventProccesingThreads" value="2"/>
     </appSettings>
</configuration>
  • AsynchronousEventNotification: 클라이언트 측에서 이벤트가 비동기적으로 발생하는지 동기적으로 발생하는지 지정합니다. 기본값은 다음과 같습니다. 참된 이는 이벤트가 비동기적으로 실행됨을 나타냅니다. 값은 그릇된 이는 이벤트가 클라이언트 측에서 동기적으로 실행된다는 것을 의미합니다.

  • NumberofEventProcessingThreads: 사용자가 이벤트가 동기적으로 실행되도록 구성한 경우 이 플래그는 클라이언트 측에서 이러한 이벤트를 처리할 스레드 수를 지정하는 데 사용됩니다. 값이 너무 크면 성능 문제가 발생할 수 있습니다.

도 참조

.그물: Alachisoft.NCache.고객 네임 스페이스.
자바 : com.alachisoft.ncache.client 네임 스페이스.
파이썬 : ncache.클라이언트 기준 치수.
Node.js : 캐시 클래스입니다.

문의하기

전화

+1 214-619-2601   (미국)

+44 20 7993 8327   (UK)

 
이메일

sales@alachisoft.com

support@alachisoft.com

NCache
  • 판 비교
  • NCache 아키텍처
  • 벤치 마크
다운로드
가격
놀이터를 사용해보십시오

배포
  • 클라우드(SaaS 및 소프트웨어)
  • 온 프레미스
  • Kubernetes
  • 도커
기술 사용 사례
  • ASP.NET 세션
  • ASP.NET 코어 세션
  • 게시/구독 메시징
  • 실시간 ASP.NET SignalR
  • 사물의 인터넷 IOT ()
  • NoSQL 데이터베이스
  • 스트림 처리
  • 마이크로 서비스
리소스
  • 잡지 기사
  • 제XNUMX자 기사
  • 기사
  • 비디오
  • 백서
  • 쇼
  • 회담
  • 블로그
  • 기술 문서
고객 사례 연구
  • 환자 후기
  • 고객
고객 지원
  • 데모 예약
  • 포럼(Google 그룹스)
  • Tips
회사
  • Leadership
  • 파트너
  • ​뉴스
  • 이벤트
  • 채용 정보
문의하기

  • 영어중국어 (간체)프랑스어독일 사람이탈리아 사람일본제한국어포르투갈어스페인어

  • 문의하기
  •  
  • 사이트 맵
  •  
  • 이용 약관
  •  
  • 개인정보 처리방침
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.
맨 위로