API 서버의 가용성 테스트 방법
이것은 매우 중요한 조치입니다. 특히 생산 환경에 있어서 가장 원하지 않는 것은 API 서버가 최고치에 달하고 자원을 빈번하게 방출하지 않기 때문에 요청이 줄을 서는 것입니다.
간략하게 설명하다
본고에서 저는 참고NodeJS를 하겠지만 언급한 대부분의 이론과 원칙은 어떠한 플랫폼과 환경에도 응용할 수 있습니다.
YouTube에서 동영상 보기
어떤 기준 테스트 도구를 사용합니까
테스트에 사용할 도구의 이름은 AutoCannon 입니다.그것은 완전히 NodeJS로 작성된 것으로 Apache Benchmark, Artillery, K6, Wrk 등과 매우 비슷하다. 이것은 좋은 소식이다. 왜냐하면 당신은 자동 스캐닝을 사용하여 본문을 따를 필요가 없기 때문이다.기본 테스트 도구가 HTTP 요청에 대한 부하 테스트를 수행할 수 있고 초당 평균 요청 수를 확인할 수 있다면 시작할 수 있습니다.
즉, AutoCannon을 사용하려면 이를 전 세계에 NPM 모듈로 설치하면 됩니다.npm i -g autocannon
API 서버의 가용성 테스트 방법
우선 로컬 환경에서 이 예시를 실행하려면 온라인 Source Code Repo 을 참조하십시오.NodeJS만 설치하면 됩니다.
아래의 코드 세션은 가방을 설정하는 것 외에 거의 99퍼센트가 당신이 원하는 위치에 도달하게 합니다.json, NODE_ENV를 Production, PORT를 6000으로 설정합니다 (문제를 해결하려면 제공된 소스 코드 Repo 및 포함된 비디오의 예제 코드를 참조하십시오.)응용 프로그램에 다음 내용을 추가합니다.js 파일.
'use strict'
require('dotenv').config()
const Express = require('express')
const App = Express()
const HTTP = require('http')
const BCrypt = require('bcryptjs')
// Router Setup
App.get('/pulse', (req, res) => {
res.send('')
})
App.get('/stress', async (req, res) => {
const hash = await BCrypt.hash('this is a long password', 8)
res.send(hash)
})
// Server Setup
const port = process.env.PORT
const server = HTTP.createServer(App)
server.listen(port, () => {
console.log('NodeJS Performance Optimizations listening on: ', port)
})
이것은 매우 간단한 Express 서버로 두 가지 경로를 공개했습니다.
어떤 기준 테스트 도구를 사용합니까
테스트에 사용할 도구의 이름은 AutoCannon 입니다.그것은 완전히 NodeJS로 작성된 것으로 Apache Benchmark, Artillery, K6, Wrk 등과 매우 비슷하다. 이것은 좋은 소식이다. 왜냐하면 당신은 자동 스캐닝을 사용하여 본문을 따를 필요가 없기 때문이다.기본 테스트 도구가 HTTP 요청에 대한 부하 테스트를 수행할 수 있고 초당 평균 요청 수를 확인할 수 있다면 시작할 수 있습니다.
즉, AutoCannon을 사용하려면 이를 전 세계에 NPM 모듈로 설치하면 됩니다.npm i -g autocannon
API 서버의 가용성 테스트 방법
우선 로컬 환경에서 이 예시를 실행하려면 온라인 Source Code Repo 을 참조하십시오.NodeJS만 설치하면 됩니다.
아래의 코드 세션은 가방을 설정하는 것 외에 거의 99퍼센트가 당신이 원하는 위치에 도달하게 합니다.json, NODE_ENV를 Production, PORT를 6000으로 설정합니다 (문제를 해결하려면 제공된 소스 코드 Repo 및 포함된 비디오의 예제 코드를 참조하십시오.)응용 프로그램에 다음 내용을 추가합니다.js 파일.
'use strict'
require('dotenv').config()
const Express = require('express')
const App = Express()
const HTTP = require('http')
const BCrypt = require('bcryptjs')
// Router Setup
App.get('/pulse', (req, res) => {
res.send('')
})
App.get('/stress', async (req, res) => {
const hash = await BCrypt.hash('this is a long password', 8)
res.send(hash)
})
// Server Setup
const port = process.env.PORT
const server = HTTP.createServer(App)
server.listen(port, () => {
console.log('NodeJS Performance Optimizations listening on: ', port)
})
이것은 매우 간단한 Express 서버로 두 가지 경로를 공개했습니다.
우선 로컬 환경에서 이 예시를 실행하려면 온라인 Source Code Repo 을 참조하십시오.NodeJS만 설치하면 됩니다.
아래의 코드 세션은 가방을 설정하는 것 외에 거의 99퍼센트가 당신이 원하는 위치에 도달하게 합니다.json, NODE_ENV를 Production, PORT를 6000으로 설정합니다 (문제를 해결하려면 제공된 소스 코드 Repo 및 포함된 비디오의 예제 코드를 참조하십시오.)응용 프로그램에 다음 내용을 추가합니다.js 파일.
'use strict'
require('dotenv').config()
const Express = require('express')
const App = Express()
const HTTP = require('http')
const BCrypt = require('bcryptjs')
// Router Setup
App.get('/pulse', (req, res) => {
res.send('')
})
App.get('/stress', async (req, res) => {
const hash = await BCrypt.hash('this is a long password', 8)
res.send(hash)
})
// Server Setup
const port = process.env.PORT
const server = HTTP.createServer(App)
server.listen(port, () => {
console.log('NodeJS Performance Optimizations listening on: ', port)
})
이것은 매우 간단한 Express 서버로 두 가지 경로를 공개했습니다.한편,/stress 단점은 BcryptJS를 사용하여 암호를 암호화하고 산열합니다.이것은 매우 복잡한 과정이다. 왜냐하면 이것은 완전히 자바스크립트로 작성된 것이기 때문에 이벤트 순환을 심각하게 막을 수 있다.
첫 번째 테스트에서는 AutoCannon을 사용하여/pulse 노드에 대한 부하 테스트를 실행하여 API 서버가 비어 있을 때 초당 얼마나 많은 요청을 처리할 수 있는지 확인합니다.절차는 다음과 같습니다.
node app
autocannon http://127.0.0.1:6000/pulse
이제 베이스라인 측정을 통해 API 서버가 과중한 작업을 수행할 때 어떻게 되는지 살펴보겠습니다.
node app
autocannon -d 30 http://127.0.0.1:6000/stress
autocannon http://127.0.0.1:6000/pulse
이것은 무서운 결과라고 상상할 수 있다. 가능한 한 빨리 처리해야 한다.
이것은 현실 세계에서 무엇을 의미하는가
이 예는 현실 세계에서 큰 의미가 없지만 환경에서 실행해야 할 테스트 형식에 템플릿을 제공합니다.API 서버가 최대 실행 상태인지 확인한 다음 서버에 속하는 경량급 API에 대한 로드 테스트를 수행해야 합니다.지연이 많지 않은 상황에서 처리할 수 있는지, 코드가 이벤트 순환을 잘 관리하지 못해서 막을 수 있는지 확인해야 합니다.
나는 어떻게 이 문제를 해결해야 합니까?
좋아, 좋은 소식이 있어. 처음에 언급한 바와 같이,''에 관한 시리즈 프로그램으로 바쁘다.내가 이미 발표한 내용과 곧 발표할 내용의 예시를 사용한 후, 나는/pulse 테스트의 초당 요청 수를 117개에서 4000여 개로 늘리는 데 성공했다.
네가 하고 싶은 것은 나의 유튜브 채널을 방문하는 것이다. 왜냐하면 나는 먼저 그곳에서 모든 내용을 발표하고 거의 매주 발표하기 때문이다.이 시리즈에는 이미 4개의 동영상이 있는데 그 중 중요한 영상 중 하나는'Managing The Event Loop Phases'이다.
나는 이 문장이 가치가 있다는 것을 증명하기를 바란다.더 많은 정보를 기대해주세요.😎
건배!
Reference
이 문제에 관하여(API 서버의 가용성 테스트 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/johnjardincodes/how-to-test-the-availability-of-your-api-server-1mb8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
좋아, 좋은 소식이 있어. 처음에 언급한 바와 같이,''에 관한 시리즈 프로그램으로 바쁘다.내가 이미 발표한 내용과 곧 발표할 내용의 예시를 사용한 후, 나는/pulse 테스트의 초당 요청 수를 117개에서 4000여 개로 늘리는 데 성공했다.
네가 하고 싶은 것은 나의 유튜브 채널을 방문하는 것이다. 왜냐하면 나는 먼저 그곳에서 모든 내용을 발표하고 거의 매주 발표하기 때문이다.이 시리즈에는 이미 4개의 동영상이 있는데 그 중 중요한 영상 중 하나는'Managing The Event Loop Phases'이다.
나는 이 문장이 가치가 있다는 것을 증명하기를 바란다.더 많은 정보를 기대해주세요.😎
건배!
Reference
이 문제에 관하여(API 서버의 가용성 테스트 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/johnjardincodes/how-to-test-the-availability-of-your-api-server-1mb8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)