오늘날의 애플리케이션은 극단적인 수준의 트랜잭션 로드를 확장하고 처리해야 합니다. 그러나 데이터베이스는 확장할 수 없으므로 병목 현상이 발생합니다. 이를 해결하기 위해 많은 분들이 메모리 내 분산 캐시 선형적으로 확장되고 데이터베이스 병목 현상을 제거하기 때문입니다.
분산 캐시에는 일반적으로 두 가지 유형의 데이터, 트랜잭션 데이터 및 참조 데이터가 포함됩니다. 트랜잭션 데이터는 매우 자주 변경되므로 매우 짧은 시간 동안 캐시됩니다. 그러나 캐싱은 여전히 성능과 확장성을 상당히 향상시킵니다.
반면 참조 데이터는 자주 변경되지 않습니다. 정적 데이터이거나 매시간, 매일 등으로 변경되는 동적 데이터일 수 있습니다. 때때로 이 데이터는 거대할 수 있습니다(기가바이트 단위). 이 참조 데이터가 캐시 시작 시 분산 캐시에 미리 로드될 수 있다면 좋을 것입니다. 그러면 애플리케이션이 런타임에 로드할 필요가 없기 때문입니다. 참조 데이터 로드 중 특히 데이터가 많은 경우 런타임에 애플리케이션 성능이 느려질 수 있습니다.
NCache 세부 정보 NCache 기술 문서 캐시 로더 및 리프레셔 문서
참조 데이터를 분산 캐시에 어떻게 미리 로드해야 합니까?
한 가지 접근 방식은 애플리케이션 시작 중에 데이터베이스에서 필요한 모든 참조 데이터를 가져와서 분산 캐시에 넣는 방식으로 애플리케이션을 설계하는 것입니다.
그러나 이 접근 방식은 몇 가지 다른 문제를 야기합니다. 첫째, 이제 애플리케이션이 캐시 사전 로드에 관여하기 때문에 애플리케이션 시작 속도가 느려집니다. 둘째, 분산 캐시를 공유하는 여러 응용 프로그램이 있는 경우 각 응용 프로그램에 코드 중복이 있거나 모든 응용 프로그램이 분산 캐시를 미리 로드하는 하나의 응용 프로그램에 의존합니다. 마지막으로 애플리케이션에 캐시 사전 로드 코드를 포함하면 애플리케이션에 속하지 않는 코드를 추가하므로 애플리케이션 디자인이 손상됩니다. 물론 이러한 상황 중 어느 것도 매우 바람직하지 않습니다.
이걸 주면 어떡해 사전 로드 책임 분산 캐시 자체에? 이 경우 사전 로드는 캐시 시작 프로세스의 일부일 수 있으므로 애플리케이션과 전혀 관련이 없습니다. 시작 시 필요한 모든 데이터를 미리 로드하도록 캐시를 구성하여 처음부터 모든 애플리케이션에서 사용할 수 있도록 할 수 있습니다. 이렇게 하면 더 이상 논리 사전 로드에 대해 걱정할 필요가 없기 때문에 응용 프로그램이 간소화됩니다.
NCache 세부 정보 NCache 기술 문서 캐시 로더 및 리프레셔 문서
캐시에 참조 데이터 미리 로드
NCache 시작 시 캐시를 미리 로드하는 매우 강력하고 유연한 기능을 제공합니다. 캐시 로더에 대한 사용자 지정 코드를 작성하고 등록할 수 있습니다. NCache. 이 작업이 완료되면 NCache 캐시 시작 시 캐시 로더(사용자 지정 코드 포함)를 호출합니다. 구현으로 이동하기 전에 먼저 기본 구성 요소에 대해 알아보겠습니다. NCache 캐시 시작 로더.
- 로더 서비스: 클러스터 토폴로지의 경우 전용 로더 서비스 asshttps://www에 따라 데이터를 로드하기 위해 각 노드에서 실행됩니다.alachisoft.com/resources/docs/ncache/prog-guide/cache-startup-loader-overview.html#loader-serviceigned 데이터 세트 이는 캐시 프로세스에 대한 부담을 줄여 로딩 성능을 향상시킵니다.
- 데이터 세트 : 로드할 데이터는 다음과 같이 나뉩니다. 논리 데이터 세트 라운드 로빈 알고리즘을 사용하여 사용자에 의해 노드에 배포됩니다. 이렇게 하면 병렬 처리를 달성하여 로드 프로세스 속도가 빨라집니다.
더 깊이 파고들려면 NCache 미리 로드 기능, 당신은 볼 수 있습니다 캐시 로더 속성게다가, NCache 또한 다음을 제공하여 로드된 캐시 데이터 새로 고침을 용이하게 합니다. 캐시 리프레셔 기능.
ICacheLoader 인터페이스 구현
다음을 사용하여 사전 로드를 활성화하려면 NCache, 라는 간단한 인터페이스를 구현해야 합니다. ICacheLoader
. "어떻게 그리고 어떤 데이터를 로드할 것인가?"라는 질문에 대답할 때 캐시를 돕기 위해 호출됩니다. 다음 방법을 간단하게 사용자 지정 코딩하는 방법은 다음과 같습니다. ICacheLoader
비즈니스 요구 사항에 따라 인터페이스를 제공합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
class CacheLoader : ICacheLoader { public void Init(IDictionary<string, string> parameters, string cacheName) { //connect to cache cache = CacheManager.GetCache(cacheName); //Connection string is passed as parameters at the time of configuration // connectionString = parameters.ContainsKey("ConnectionString") ? parameters["ConnectionString"] : null; if (connectionString != null) { //Let's connect to the database connection = new SqlConnection(connectionString); } } public object LoadDatasetOnStartup(string dataSet) { // Create a list of datasets to load at cache startup IList<object> datasetToLoad; if (dataSet != null) { switch (dataSet.ToLower()) { // If dataset is "products", fetch products from data source to load in cache case "products": datasetToLoad = FetchProductsFromDataSource(); // Insert fetched product in the cache // You can also use NCache bulk API to insert data into cache foreach (var product in datasetToLoad) { string key = $"ProductID:{product.Id}"; cache.Insert(key, product); } break; // You can add more cases for different datasets as per requirement and fetch them from the data source default: // Invalid dataset throw new Exception($"Unknown dataset is configured. Dataset {dataSet}"); break; } } return null; } } |
시작 로더 처리 중에 발생한 모든 예외는 응용 프로그램에 문제를 일으키지 않고 기록됩니다. 간단하고 효과적입니다!
시작 로더 구성
캐시 시작 로더를 구현했으면 다음을 사용하여 캐시에 대해 구성할 수 있습니다. NCache 웹 관리자. 캐시에 대한 세부 구성 페이지에서 캐시 로더를 활성화할 수 있습니다. NCache 웹 관리자. 자세한 단계는 다음을 사용하여 캐시 시작 로더를 구성하는 방법을 참조할 수 있습니다. NCache 웹 관리자.
다음을 사용하여 구성된 캐시 로더가 있는 캐시에 데이터 세트를 추가 및 제거할 수도 있습니다. Add-StartupLoader
및 Remove-StartupLoader
각각 PowerShell cmdlet입니다. 에 대한 관련 예제를 볼 수 있습니다. 로더 데이터 세트 추가 및 시작 로더 제거 더 나은 이해를 위해.
결론!
당신이 볼 수 있듯이, NCache 분산 캐시를 미리 로드하고 애플리케이션의 성능을 항상 높게 유지하는 강력한 메커니즘을 제공합니다. 게다가, NCache 또한 다음을 제공하여 로드된 캐시 데이터 새로 고침을 용이하게 합니다. 캐시 리프레셔 특징. 그래서 다운로드 NCache 지금 방대한 기능을 사용할 준비를 하십시오!
실제로는 훌륭하고 유용한 정보입니다. 이 유용한 정보를 공유해 주셔서 감사합니다.
우리는 다음과 같이 정보를 유지하시기 바랍니다. 공유 주셔서 감사합니다.
안녕하세요, 다음을 통해 귀하의 웹사이트를 찾았습니다.
유사한 주제를 검색하는 동안 Google에서 귀하의 웹사이트가 여기에 왔습니다.
업, 좋을 것 같습니다. Google 북마크에 북마크해 두었습니다.
안녕하십니까, Google을 통해 귀하의 웹로그에 대한 알림을 받았고 정말 유익하다는 것을 알게 되었습니다.
브뤼셀을 조심하겠습니다. 진행해주시면 감사하겠습니다
앞으로는. 아마 많은 분들이 혜택을
당신의 글에서. 건배!