회로 차단기와 벌크헤드 패턴의 차이점은 무엇입니까?
마이크로 서비스 개발 중에 Spring Boot에서 둘 다 같이 사용할 수 있습니까?
이것들은 근본적으로 다른 패턴입니다.
회로 차단기 패턴은 통화 처리에 어려움을 겪을 수 있는 서비스의 과부하를 방지하기 위해 소비자에게 구현됩니다.Spring의 구현 예는 여기에서 확인할 수 있습니다.
벌크헤드 패턴은 서비스에 구현되어 다른 수신 통화의 처리에 영향을 미치는 단일 수신 통화의 처리 중 오류를 방지합니다.Spring의 구현 예는 여기에서 확인할 수 있습니다.
이러한 패턴의 유일한 공통점은 둘 다 분산 시스템의 복원력을 높이도록 설계되었다는 것입니다.
동일한 서비스에서 이러한 서비스를 함께 사용할 수는 있지만, 한 사람은 전화를 거는 것과 관련이 있고 다른 한 사람은 전화를 다루는 것과 관련이 있기 때문에 서로 전혀 관련이 없다는 것을 이해해야 합니다.
네, 함께 사용할 수 있지만 항상 필요한 것은 아닙니다.
- @tomredfern이 말했듯이, 회로 차단기는 발신자 측에서 구현됩니다.따라서 다른 서비스로 요청을 보내는 경우 해당 서비스에 해당하는 회로 차단기에 해당 요청을 포장해야 합니다.다른 모든 타사 시스템 또는 서비스에는 자체 회로 차단기가 있어야 합니다.그렇지 않으면 한 시스템을 사용할 수 없는 경우 회로 차단기를 열어 다른 시스템으로 보내는 요청에 영향을 줍니다.
차단기에 대한 자세한 내용은 https://learn.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker 에서 확인할 수 있습니다.
- 또한, @tomredfern은 벌크헤딩의 경우에도 옳습니다, 이것은 호출되는 서비스에서 구현되는 패턴입니다.따라서 다른 여러 요청이나 워크로드를 확장하여 외부 요청에 대응하는 경우에는 이러한 모든 워크로드를 단일 단위(스레드)로 수행하는 것을 피해야 합니다.대신 워크로드를 스팬된 각 요청에 대해 조각(스레드 풀)으로 분리합니다.
벌크헤드에 대한 자세한 내용은 https://learn.microsoft.com/en-us/azure/architecture/patterns/bulkhead 에서 확인할 수 있습니다.
당신의 질문은 이 두 패턴을 동일한 마이크로 서비스에서 사용할 수 있는지 여부였습니다.답은: 네, 상황이 이것을 암시할 수 있고 매우 자주 있습니다.
언급URL : https://stackoverflow.com/questions/60990475/what-is-the-difference-between-a-circuit-breaker-and-a-bulkhead-pattern
'source' 카테고리의 다른 글
Swift의 UIViewController에서 기본 super.init()를 호출할 수 없는 이유는 무엇입니까? (0) | 2023.08.05 |
---|---|
도커에서 "노출"과 "공개"의 차이점은 무엇입니까? (0) | 2023.08.05 |
IPython 종료 확인 사용 안 함 (0) | 2023.08.05 |
web.config asp.net 의 오라클 데이터베이스 연결 (0) | 2023.07.31 |
PHP5 객체는 참조로 전달됩니까? (0) | 2023.07.31 |