Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Test] circuitbreaker test #22

Merged
merged 5 commits into from
Sep 21, 2024
Merged

[Test] circuitbreaker test #22

merged 5 commits into from
Sep 21, 2024

Conversation

kamothi
Copy link
Member

@kamothi kamothi commented Sep 21, 2024

✏️ 작업 개요

circuitbreaker test 진행

⛳ 작업 분류

  • 서킷브레이커 환경 설정 추가
  • 서킷브레이커 테스트 코드 작성
  • 서킷브레이커 테스트 서비스 추가

🔨 작업 상세 내용

  1. 현재 실제 사용될 게임 서버 로직을 가지고 테스트한 것이 아닌 임의로 만들어 테스트를 진행하였습니다. 그렇기에 실질적으로 저희의 관리자 페이지에서는 해당 로직을 가져다가 약간의 변경을 해야합니다.

💡 생각해볼 문제

@kamothi kamothi added the test This issue or pull request already exists label Sep 21, 2024
Copy link

Test Results

22 tests   22 ✅  3s ⏱️
 5 suites   0 💤
 5 files     0 ❌

Results for commit 494cec3.

Copy link
Member

@david-parkk david-parkk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제가 이해한 것을 이야기해보면 circuitbreaker는 healthcheck 와 유사한 개념이라고 이해하였고, 특정 엔드포인트가 아닌 metric의 상태 점검 엔드포인트로 요청을 보내는 방식같은데 healtcheck와 차이가 있나요?

Copy link
Member

@david-parkk david-parkk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

msa 환경에서 circuitbreaker는 보내는 주체는 apigateway인가요?
그리고 현재 구현된 내용은 gateway에서 요청에 대한 처리를 위한 구현내용인가요?

@kamothi
Copy link
Member Author

kamothi commented Sep 21, 2024

제가 이해한 것을 이야기해보면 circuitbreaker는 healthcheck 와 유사한 개념이라고 이해하였고, 특정 엔드포인트가 아닌 metric의 상태 점검 엔드포인트로 요청을 보내는 방식같은데 healtcheck와 차이가 있나요?

health check의 경우 현재 서버의 상태 체크와 관련되어 있다라고 생각하시면 될거 같은데 서킷브레이커는 이거와는 다른 개념입니다. 서버 간의 통신 상황에서 한 서버가 마비되어 죽는다면 차단기를 내린다라고 생각하면 편하실거 같습니다.
예를 들어 game server -> user server -> manage server와 같은 순서로 서버들이 통신한다라고 했을 때 user server가 죽었다라고 할 경우 manage server는 그것도 모르고 user server에 지속적으로 요청을 보내게 됩니다. 그렇기에 특정 임계값과 같은 설정들을 통해 차단기를 내리고 미리 만들어둔 fallback을 통해 가용성을 보장하는 것입니다.

@kamothi
Copy link
Member Author

kamothi commented Sep 21, 2024

msa 환경에서 circuitbreaker는 보내는 주체는 apigateway인가요?
그리고 현재 구현된 내용은 gateway에서 요청에 대한 처리를 위한 구현내용인가요?

각 서버간의 통신입니다. 대신 서버가 다른 서버를 찾는 것은 디스커버리 서버를 통해 찾고 서버 간의 통신은 게이트웨이를 거치지 않습니다. 서킷 브레이커는 해당 서버에 위치하게 됩니다.

@david-parkk david-parkk merged commit 973a8c6 into main Sep 21, 2024
3 checks passed
@kamothi kamothi deleted the test/circuitbreaker branch September 21, 2024 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test This issue or pull request already exists
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants