웹서버와 엔진 공부하기 + 결제 모듈

Tony·2021년 9월 16일
0

회사에서 결제모듈을 만들어서 넣어야 하는데 노드에 오픈소스가 많아서 asp.net을 사용하고 있는 지금 서버에 어떻게 적용할 수 있을지 생각해봐야된다.

또는 asp.net에서 결제관련 모듈을 찾아야할 것 같다.

  • asp.net에서 사용가능한 결제 모듈을 제공해주는 PG를 찾는게 더 나을 것 같다.

웹서버

  • Node.js는 많이 사용하고 있지만 나머지 웹서버는 사용을 안해봐서 잘 몰랐기 때문에 이번에 정리 된 글을 찾아서 그 글을 읽으면서 정리해보려 한다.

Apache vs IIS vs Nginx vs Node.js

What are Web servers?

  • 클라이언트 - 서버 모델의 웹 응용프로그램과 함께 작동
  • 사용자의 작업처리 요청
  • 서버에서 반환된 (쿼리) 결과

Web servers limits

  • 웹서버는 IP 주소(및 TCP 포트) 당 제한된 수의 동시 클라이언트 연결만 처리할 수 있다

  • 초당 특정 최대 요청 수(RPS, 초당 쿼리)를 처리할 수 있기 때문에 load(요청) 제한을 두었다

    • QPS) HTTP 요청 유형, 설정, 캐시 및 하드웨어에 따라 다르다
  • 각 서버에는 요청을 처리하기 위한 전용 "resource(자원 : 하드웨어)"(RAM, CPU 등)이 있습니다.

  • 이러한 resource는 흐름 및 프로세스에서 사용됩니다.

    • Thread
    • Process
  • 요청 처리에서 resource 분배의 차이는 상승한 웹 서버의 주요 차별화 요소입니다

Process-based web servers : Apache, IIS

  • Apache, IIS는 각 요청이 별도의 스레드 / 프로세스 중 프로세스 기반으로 처리된다

  • 프로세스 기반 웹 서버
  • 모든 클라이언트 요청에 대해 별도의 프로세스/스레드를 사용
  • 각 스레드/프로세스는 일정 수의 서버 리소스(하드웨어)를 필요로 함
  • 보류 중인 요청이 있을 때 까지 서버 리소스를 "idle/not used"으로 유지하고 클라이언트에게 응답을 보냄
  • 선택한 프로세스 흐름이 모든 요청을 처리하기에 충분하지 않을 때 높은 load(부하)에서 성능이 나빠짐

Event-based web servers: Nginx, Node.js

  • 이벤트 기반 웹 서버
  • 이벤트 기반 웹서버는 모든 리소스(하드웨어 자원)을 사용
  • 루프 이벤트(끊임 없는 요청 싸이클)
  • 이 싸이클은 요청의 상태를 추적한다(요청 - 고객의 요청 수신, 응답의 처리 및 전송)
  • 싱글 프로세스/스레드는 가능한 빨리 요청을 처리할 수 있도록 모든 웹서버 자원을 사용하고, 대기열에서 다른 요청과 작업에 지연의 경우(클라이언트에 데이터를 전송하기 위해 클라이언트에서 데이터를 획득) (이벤트 대기열) 즉, 비동기식 입니다.

결론

이벤트 기반(Node.js, Nginx)은 서버가 다른 스레드/프로세스 간에 리소스를 공유할 필요가 없기 때문에 높은 부하에서 더 나은 성능을 보여줍니다.
또한 서버 리소스는 항상 "다운타임"없이 사용됩니다.

참고 문헌

결제

PG(Payment Gateway)

profile
움직이는 만큼 행복해진다

0개의 댓글