들어가며 처음으로 SignalR 을 이용해서 채팅 서버를 구현한 것이라, 이를 위해 성능을 검증해야 하는 상황이 생겼습니다. 어찌보면 당연한 프로세스 였는데요. 저희가 진행한 성능검증은, 1대의 IIS 서버에 어느정도의 Request를 감당할 수 있는지, 최대 동접인원을 기준으로 한대의 서버에 몇명의 유저를 감당할 수 있는지 등등 이였습니다. 진행하는 과정에서 SignalR의 성능 튜닝을 아래와 같이 진행하였습니다. ※ SignalR 2.x 버전의 IIS 환경임을 참고해주세요. IIS 구성 수정 SignalR의 성능 튜닝을 위해서는, 어플리케이션당 최대 동시 요청자 수를 늘립니다. IIS 관리자에서 SignalR로 설정되어 있는 사이트 선택시, 하단부에 구성편집기 메뉴를 선택하면, 아래와 같은 화면이 보..
들어가며 단일 서버로 구성을 하게 된다면, 여러뭐로 고민할 내용이 줄어들지만 현실은 그렇지 않죠. 다양한 failover 상황을 고려해야 하고, 부하분산 상황에 대한 상황도 같이 고려해야 합니다. SignalR을 이용하여 채팅서버를 구성할 때에도 위와같은 상황을 고려해서 설계를 진행해야 하는데요. IIS 환경에서 웹서버는 스케일 아웃, 그리고 그 안에서 메시지를 전달하는 부분은 Redis 의 Pub/Sub을 이용한 BackPlane 을 이용해서 설계를 진행했었습니다. 아래 SignalR 채팅 시스템을 개발했을때, 고려했던 내용을 정리하였습니다. 웹서버 스케일 아웃 SignalR은 웹서버로 IIS를 사용하는데요. 일반적으로 웹서버의 경우 성능을 확장하기 위한 방식으로 스케일 업, 스케일 아웃 방식중에 선택..
들어가며 SignalR을 이용해서, 채팅시스템을 구현할 일이 생겼는데요. 그러는 과정에서 Client 에서 동작하는 라이브러리를 검색했었습니다. https://github.com/jenyayel/SignalR.Client.20 GitHub - jenyayel/SignalR.Client.20: SignalR protocol 1.2 client for .NET 2.0 SignalR protocol 1.2 client for .NET 2.0. Contribute to jenyayel/SignalR.Client.20 development by creating an account on GitHub. github.com 위 소스가 .NET 2.0 환경에서 동작하는 SignalR 클라이언트 라이브러리 입니다. 하지만..
들어가며 프로젝트로 채팅서버를 구현해야할 필요성이 생겨났습니다. 어떠한 방식으로 채팅 서버를 구현할까 내부적으로 많은 이야기가 나왔었는데요. 확장성이 용이한 웹을 이용한 채팅을 개발하는 것에 초점이 맞춰졌습니다. 단기간에 해결해야 했기에, SignalR을 이용한 채팅 시스템을 구현을 했는데요. 클라이언트가 웹이 아닌 Unity3D 였기 때문에 가능한 방법을 다각도로 알아봤고, 아직은 Unity3D에서 .NET Core를 지원하지 않기 때문에 .NET Framework 4.5 버전에서 지원되는 SignalR 2.x 버전대로 채팅 시스템을 구현했습니다. SignalR 이란? ASP.NET SignalR은 애플리케이션에 실시간 웹 기능을 추가하는 프로세스를 간소화하는 ASP.NET개발자를 위한 라이브러리입니다..