2011-10-30 3 views
5

다음 질문을 두 번 물어 보았습니다. 더 많은 리소스, 블로그 도서 또는 블로그를 찾을 수 있기를 바랍니다. 확장 가능한 MVC3 C# 코드 작성에 대한 포인터. 여러 서버에서 호스팅되는 더 우수한 성능의 코드를 작성하는 데 도움이되는 지침이 있다면 크게 감사하겠습니다. 인수를 위해 하루에 10 ~ 20K 히트 이상을 기대하는 코드가 될 것이라고 말합니다.트래픽이 많은 ASP.NET MVC 코딩 고려 사항

질문 : 여러 서버에 분산되어있는 확장 가능 코드 작성시 고려해야 할 코딩 고려 사항은 무엇입니까?

내 직감은 응답이 처리 세션에 있다고 알려줍니다. 지난 몇 년 동안 내 배경이 서면 서비스 및 양식 응용 프로그램에 대한 웹 응용 프로그램을 많이하지 않도록 나는 특히 C# MVC3에 대한 웹 응용 프로그램 개발에 도움이 될 수있는 정보를 찾고 있습니다. 내가 확실히 조사 할 것을 제안하는 모든 블로그 또는 책!

+2

개인적으로 나는 항상 여러 개의 서버를 통해 응용 프로그램을 실행할 때 두통이 적기 때문에 세션을 사용하지 마십시오. 앱에서 세션을 사용하지 않는다면 web.config에서도 해제 할 수 있습니다. –

답변

2

확장 가능한 웹 응용 프로그램을 구현하기위한 규칙 중 하나는 상태 비 저장 프로그램입니다. Session은 응용 프로그램을 상태 저장 (stateful)으로 만드는 가장 중요한 이유 중 하나입니다. 완전히 상태 비 저장 응용 프로그램을 사용하면 트래픽이 증가하고 응용 프로그램에서 처리 할 수있을 때 하드웨어를 던질 수 있습니다. 그래서 당신의 Web.config에 다음 줄을 넣어 시작 : 상태가가는 곳이기 때문에

<system.web> 
    <sessionState mode="Off" /> 
    ... 
</system.web> 

문제는 이제 데이터 계층에 놓여 있습니다. 따라서 성능을 향상시키고이 노드에 대한 요청 수를 제한하려면 캐싱을 사용하는 것이 좋습니다. 가능한 한 많은 데이터를 캐시하십시오. 이 캐시를 웹 서버가 아닌 별도의 시스템에 저장하는 것이 좋습니다. 캐싱을위한 전용 기계.

+0

@xanatos - MVC는 ViewState를 사용하지 않습니다. –

+0

응답에 대한 감사합니다. 이러한 캐싱 기술 중 일부를 설명하는 데 도움이되는 자료를 제안 할 수 있습니까? 가능한 모든 경우 C# MVC가 기울어지는 것이 바람직하지만 아무 것도 준비하지 않을 것입니다! :) 다시 한번 감사드립니다. – likestoski

+0

@likestoski, 다음은 출력 캐싱에 대한 소개입니다. http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-cs 부분 페이지 출력 캐싱을위한이 또한 http : // davidhayden입니다. .com/blog/dave/archive/2011/01/25/PartialPageOutputCachingASPNETMVC3.aspx 데이터 캐싱에 대한 유용한 일련의 게시물은 다음과 같습니다. http://stevescodingblog.co.uk/tag/memorycache/ –