NCache ASP.NET Core 앱에서

안녕하세요 여러분, 저는 Sean입니다. 오늘은 Using를 시작하는 방법을 보여 드리겠습니다. NCache ASP.NET Core를 사용하는 방법입니다. 실제로 매우 간단한 과정이며, 몇 가지 기본적인 단계를 통해 완료할 수 있습니다. 그럼 바로 시작하겠습니다.

NCache 배포 개요

일반적인 배포부터 시작하여 NCache 것처럼 보일 것입니다. 이는 일반적인 배포의 모습을 나타냅니다. 애플리케이션 계층이 맨 위에 있고 캐싱 계층이 중간에 있으며 데이터베이스 계층이 맨 아래에 있습니다. 이는 애플리케이션과 함께 앱 서버에서 캐시를 호스팅할 수 있는 공유 배포로도 발견되지만 이는 더 깔끔한 아키텍처를 만들기 때문에 더 권장되는 접근 방식입니다.

NCache 전개
NCache 전개

환경 설정

이제 배포를 이해했으므로 통합하는 데 필요한 것이 무엇인지 살펴보겠습니다. NCache 환경설정부터 시작합니다. 따라서 환경 설정을 위해 두 가지가 있습니다. NCache 캐시가 구성되어 사용할 준비가 된 서버를 지금 바로 보여드리겠습니다. 먼저 우리가 작업하게 될 이 애플리케이션을 보여드리겠습니다. 이것은 여기에서 볼 수 있는 고객 앱의 샘플 애플리케이션입니다. 웹 관리자를 열면 여기에 구성된 두 개의 캐시, 즉 105와 106에서 호스팅되는 데이터 캐시와 참조 캐시를 볼 수 있습니다. 이 데모를 위해 구성한 두 개의 캐시입니다. 이제 갈 준비가 되었습니다. 이제 실제로 실제 단계로 넘어갈 수 있습니다.

데모 캐시
  1. 설치 NCache SDK NuGet 패키지

    첫 번째 단계는 NCache 애플리케이션 내의 SDK NuGet 패키지. NuGet 패키지를 관리하는 경우 애플리케이션으로 돌아가면 최신 버전의 NuGet 패키지가 있음을 알 수 있습니다. NCache SDK가 이미 설치되어 있으므로 여기로 가도 좋습니다.

  2. 추가 NCache 네임 스페이스

    따라서 다음 단계로 넘어갈 수 있습니다. NCache 애플리케이션의 네임스페이스. 다시 돌아와서 고객 저장소로 이동하겠습니다. 여기서는 계속해서 추가만 하면 됩니다. 사용 Alachisoft.NCache.고객. 그리고 이 네임스페이스를 추가하면 빨간색 물결선이 사라지는 것을 볼 수 있습니다. 즉, 이 네임스페이스가 필요하다는 의미이므로 계속 진행하면 됩니다. 그냥 저장하겠습니다.

  3. 추가 NCache 구성

    이제 세 번째 단계는 NCache .ncconf 파일에 대한 구성입니다. 애플리케이션으로 돌아오면 애플리케이션 내에 이 클라이언트와 config.ncconf 파일이 있다는 것을 알 수 있습니다. 이 시점에서 실제로 이러한 파일을 어디서 얻었는지 궁금하실 것입니다. 음, 이러한 파일은 NCache SDK. 그래서 설치하면 NCache SDK 또는 해당 파일을 애플리케이션으로 가져오는 NuGet 패키지를 추가하세요. 이제 우리는 그들이 어디서 왔는지 알았으니 계속해서 내 client.ncconf를 살펴보겠습니다. 따라서 이를 열면 각각 105와 106에서 호스팅되는 'datacache' 및 'referencecache'에 대한 캐시 태그가 있음을 알 수 있습니다. 105, 106, 여기로 갑니다. 그리고 구성으로 이동하면 내 참조 캐시와 통신하는 'refclientcache'가 구성되어 있음을 볼 수 있습니다. 그리고 이것은 내 InProc 클라이언트 캐시입니다. 이제 이 제품의 장점과 기능에 대해 자세히 설명하겠습니다. NCache 클라이언트 캐시가 제공하지만 이에 대한 전용 비디오가 있으므로 꼭 확인해 보시기 바랍니다.

    <?xml version="1.0" encoding="UTF-8"?><configuration>
        <ncache-server connection-retries="3" retry-connection-delay="0" retry-interval="1" command-retries="3" command-retry-interval="0.1" client-request-timeout="90" connection-timeout="5" port="9800"/>
    	  <cache id="data" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="False" enable-client-logs="False" log-level="error">
    		  <server name="20.200.16.105"/>
    		  <server name="20.200.16.106"/>
    	  </cache>
    	  <cache id="reference" client-cache-id="refclientcache" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
    		  <server name="20.200.16.105"/>
    		  <server name="20.200.16.106"/>
    	  </cache>
    </configuration>
  4. 기존 방법에 기본 작업 구현

    어쨌든 이제 이 작업을 완료했으므로 기본 작업을 기존 메서드에 구현하는 다음 단계로 넘어가겠습니다. 여기에 고객 저장소 클래스가 있고 여기에 캐싱 방법이 정의되어 있습니다.

    //Constructor With Caching
    public CustomerRepository(string connectionString, string data_cache, string ref_cache) {
        _connectionString = connectionString;
        if (_data_cache == null) {
            _data_cache = CacheManager.GetCache(data_cache);
            Console.WriteLine($ "Connected to {data_cache}");
        }
        if (ref_cache == null) {
            _ref_cache = CacheManager.GetCache(ref_cache);
            Console.WriteLine($ "Connected to {ref_cache}");
        }
    }

    따라서 우리가 내 data_cache 및 내 _ref_cache에 대해 이 CacheManager.GetCache를 사용하여 수행할 캐시 핸들의 실제 가져오기부터 시작한다면. 따라서 이 애플리케이션의 데이터와 참조 캐시 모두에 연결되어 있음을 알 수 있습니다.

    다음으로 우리는 이 _data_cache.Get을 사용하는 ID로 고객을 얻습니다.

    public Customer GetCustomerById(string id) {
        Customer customer = null;
        if (_data_cache != null) {
            customer = _data_cache.Get <Customer> ($ "Customer:{id}");
            if (customer != null) {
                return customer;
            }
        }
        if (_ref_cache != null) {
            customer = _ref_cache.Get <Customer> ($ "Customer:{id}");
            if (customer != null) {
                return customer;
            }
        }
        //Fetch customer from DB
    	...
    
        //Add customer to reference cache
        _ref_cache.Add($ "Customer:{customer.CustomerID}", customer);
        customerKeys.Add($ "Customer:{customer.CustomerID}");
        return customer;
    }

    이제 다음 방법은 실제로 고객을 _data_cache에 추가할 캐시에 추가하는 것입니다. 따라서 _data_cache라고 합니다. 이 고객 키와 해당 키 값을 추가할 이 고객을 추가합니다. 그런 다음 캐시에 페어링하십시오.

    if (_data_cache != null) {
        if (_data_cache.Get <Customer> ($ "Customer:{customer.CustomerID}") == null) {
            Console.WriteLine($ "Adding customer {customer.CustomerID} in data cache");
            _data_cache.Add($ "Customer:{customer.CustomerID}", customer);
            customerKeys.Add($ "Customer:{customer.CustomerID}");
        } else {
            Console.WriteLine($ "Customer {customer.CustomerID} already exists in data cache.");
        }
    }

    그리고 같은 방식으로 작동할 다른 모든 메서드를 정의했습니다. 그럼 여기가 좋은 것 같아요.

  5. 앱 배포

    마지막 단계는 두 가지 방법으로 이를 수행할 애플리케이션을 실제로 배포하는 것입니다.

    1. NuGet을 사용한 배포

      이 애플리케이션을 배포할 첫 번째 방법은 지금까지 구성한 방법인 NuGet 패키지만 사용하여 배포하는 것입니다. 이를 어떻게 수행할지 살펴보겠습니다.

      따라서 이 애플리케이션이 이미 배포되어 구성된 웹 서버가 있고 이것이 바로 내 104 상자입니다. 따라서 내 104 상자로 이동하면 여기에 내 NuGet 사이트가 있음을 알 수 있습니다. 계속해서 이것을 찾아보거나 탐색해 보면 내 client.ncconf가 있다는 것을 알 수 있습니다. 이 파일을 열면 'datacache'와 'referencecache' 태그가 각각 105와 106을 가리키는 것을 알 수 있습니다. 그래서 이것이 맞는 것 같습니다.

      config.ncconf로 이동하면 여기서 내 'ReferenceCache'를 가리키는 'refclientcache'를 볼 수 있습니다. 이는 이것조차 좋아 보인다는 것을 의미합니다. 따라서 이 모든 것이 좋아 보이는데 이 앱은 이미 배포되었습니다. 이제 이 앱을 살펴보겠습니다. 그래서 104 좋아요로 갑니다. 그러면 이 NuGet Only CustomerApp이 배포된 것을 볼 수 있습니다. 이제 고객을 추가해 보겠습니다. 이제 여기에 고객을 추가하면 고객 수가 최대 92명까지 늘어난 것을 볼 수 있습니다. 따라서 우리는 이 애플리케이션에서 뭔가를 수행했습니다.

      이제 클러스터 캐시가 이 애플리케이션에 대해 무엇을 보여주는지 살펴보겠습니다. 따라서 여기에서 참조 캐시 모니터도 열겠습니다. 참조 캐시에는 91명의 고객이 표시되어야 합니다. 왜냐하면 이는 처음 로드할 때의 고객 수였기 때문입니다. 실제로는 91, 40 + 51이므로 그것은 91입니다. 그리고 데이터 캐시에는 실제로는 1명의 고객이 표시되어야 하며, 이 고객이 방금 추가한 고객입니다.

      NCache 모니터

      이제 이 고객을 제거해 보겠습니다. 그래서 이 고객만 찾아보고 삭제하겠습니다. 자, 삭제했습니다. 이제 91명의 고객이 있는 데이터 캐시로 돌아가면 고객 수가 1에서 XNUMX으로 변경된 것을 볼 수 있습니다. 따라서 이 애플리케이션은 작동 중이며 이것이 이 애플리케이션을 배포하는 한 가지 방법입니다.

    2. 원격 클라이언트를 사용한 배포

      이제 이 애플리케이션을 배포하는 다른 방법은 다음을 사용하여 이 애플리케이션을 배포하는 것입니다. NCache 원격 클라이언트입니다. 어떻게 작동하는지 살펴보겠습니다. 이를 위해 103번 서버라는 별도의 서버를 설정해 두었습니다. 지금 바로 그곳으로 이동해 보겠습니다. 여기에는 구성 기반 버전의 애플리케이션이 저장되어 있습니다. 구성 기반이라고 이름 붙인 이유는 실제로 구성 파일을 사용할 것이기 때문입니다. NCache 우리가 이 상자에 부여할 관리입니다. 보시다시피 내 애플리케이션에는 클라이언트 또는 config.ncconf 파일이 없습니다. 그러면 이 앱이 작동하면 안 된다는 뜻이겠죠? 음, 실제로 내가 가져 오기-NCache버전 PowerShell에서 보시면 이 컴퓨터에 Enterprise Remote Client가 설치되어 있는 것을 확인할 수 있습니다.

      이제 다음을 사용하여 이 머신을 클러스터 캐시에 클라이언트 노드로 추가해 보겠습니다. NCache 관리센터. 관리자로 돌아와서 내 참조 캐시에 대한 세부 정보 보기를 클릭하고 아래로 스크롤하면 103이 이미 ReferenceClientCache로 구성된 클라이언트 캐시에 추가되어 있으며 이는 OutProc 클라이언트 캐시임을 확인할 수 있습니다. 이는 내가 가지고 있을 때 구성할 수 있는 것입니다. NCache 원격 클라이언트. 내 데이터 캐시를 확인해 보면 103도 클라이언트로 구성되어 있는 것을 알 수 있습니다.

      NCache 원격 클라이언트 구성

      그럼 103번으로 돌아가서 NCache 설치 디렉토리를 찾아 구성 파일에서 이러한 구성을 확인하세요. 그래서 프로그램 파일에 들어가면 > NCache > config 및 client.ncconf를 보면 여기에 datacache 태그가 있고 여기에 referencecache 태그가 있는 것을 볼 수 있습니다. 내 config.ncconf에서 참조 캐시를 가리키는 참조 클라이언트 캐시 태그를 볼 수 있습니다. 여기에서는 모든 것이 좋아 보입니다.

      <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
          <ncache-server connection-retries="3" retry-connection-delay="0" retry-interval="1" command-retries="3" command-retry-interval="0.1" client-request-timeout="90" connection-timeout="5" port="9800"/>
      	  <cache id="data" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="False" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.105"/>
      		  <server name="20.200.16.106"/>
      	  </cache>
      	  <cache id="reference" client-cache-id="refclientcache" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.105"/>
      		  <server name="20.200.16.106"/>
      	  </cache>
      	  <cache id="refclientcache" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.103"/>
      	  </cache>
        </configuration>

      그리고 저는 이미 이 애플리케이션을 배포했으므로 이제 여기를 닫고 실제로 이 웹 사이트를 브라우저에서 열어 보겠습니다. 따라서 브라우저의 이 탭을 열면 상단에 103명의 고객이 있고 여기에는 91명의 고객이 있습니다. 이제 이 앱은 이미 작동하고 있습니다. 여기서 고객을 추가해 보겠습니다. 따라서 해당 고객을 다시 추가하고 데이터 캐시로 돌아가 보겠습니다. 해당 고객이 캐시에 다시 추가되었으며 거기에서 활동이 확인되는 것을 볼 수 있습니다. 이는 이 애플리케이션을 배포할 수 있는 다른 방법입니다.

그리고 이는 작업하고 사용할 수 있는 두 가지 방법을 거의 요약합니다. NCache ASP.NET Core로 개발하고 기존 ASP.NET Core 애플리케이션에 통합했습니다.

다음 단계

이것을 직접 해보고 싶다면 할 수 있습니다 30일 무료 평가판을 다운로드하세요 of NCache 저희 웹사이트에서 엔터프라이즈 및 프로페셔널 버전을 다운로드하시면 모든 기능을 체험해 보실 수 있습니다. 이를 통해 모든 기능을 직접 사용해 보실 수 있습니다. NCache 제한이 없습니다. 지금 바로 안내해 드리겠습니다. alachisoft.com으로 가서 다운로드 페이지로 이동하면 다운로드할 수 있는 옵션이 있습니다. NCache 여기에서. 다음을 시도해 볼 수도 있습니다. NCache 운동장 샌드박스 세션과 미리 정의된 샘플을 제공하고 여기서 플레이 플레이그라운드 버튼을 클릭하면 이를 수행할 수 있습니다. 마지막으로 개인화된 일정을 예약할 수 있습니다. NCache 지도 작성을 위한 1시간 기술 덤프를 제공하는 데모 NCache 당신의 사용 사례에. 리소스 >에서 그렇게 할 수 있습니다. 데모 예약 그런 다음 여기에 이 ​​양식을 작성하여 우리에게 보내시면 즉시 데모 일정을 잡아 드리겠습니다.

자, 이것으로 이번 데모를 마치겠습니다. 시청해 주셔서 정말 감사합니다. 여러분의 ASP.NET Core 애플리케이션도 잘 작동하기를 바랍니다. NCache 이 영상을 본 후. 시청해주셔서 정말 감사합니다. 이제 몸 조심하세요.

다음에 무엇을할지?

문의하기

전화

+1 214-619-2601 (미국)

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.