2016-11-12 7 views
0

노드가 충돌하고 그 시점에 메시지가 사서함에 대기열에 있으면 노드가 메시지를 다시 처리 할 수 ​​있습니까? 다시 처리 할 수없는 경우 akka 프로그래밍 모델에 내결함성이 있다고 말할 수 있습니다. 이것은 현재 영구 큐를 사용해야하는 가장 기본적인 사용 사례입니다.노드 크래시 발생시 akka 액터에서 대기중인 메시지를 복구하는 방법은 무엇입니까?

답변

3

메시지는 처리되지 않고 손실됩니다. Akka는 메시지 배달을 보장하지 않습니다. 이는 문서의 시작 부분에 명시되어 있습니다. 그러나 이것이 프로그램에 내결함성을 부여하는 것을 배제하지 않습니다. 이렇게하는 가장 간단한 방법 중 하나는 승인을 사용하여 메시지를 구현하고 액터가 승인되지 않은 메시지를 다시 보내도록하는 것입니다.

+0

여기에 귀하의 논리에 동의하지만 아주 간단하길 바랍니다. 아주 간단하면 akka와 같은 마이크로 서비스 프레임 워크를 사용할 필요가 없었습니다. 이것이해야 할만큼 인기가없는 가장 큰 이유 중 하나입니다. Akka는 저를 위해이 문제를 해결하기로되어 있었고 인기 그래프가 정체 될 때까지 사람들은 카프카 같은 브로커를 좋아할 것입니다 –

+0

@MarutSingh, 당신은 혼란스러워합니다. Akka는 메시지 브로커가 아니며 마이크로 서비스 프레임 워크가 아니며 * 동시성 패러다임 * 구현입니다. CPS (채널 및 coroutines, Go라고 생각하는 것) 또는 맨손으로 쓰레드. Akka는 메시지 버스를 대신 할 수 없습니다. 실제로, 그들은 서로를 아주 잘 보완 할 수 있습니다. 예를 들어 RabbitMQ를 여러 프로세스 간의 매체로 사용하는 프로젝트에서 작업했으며 프로세스 자체는 Akka를 내부적으로 구축했으며 Akka를 클러스터링에 사용했습니다. –

+0

여기에 동의하지 마십시오 .Akka는 적어도 현재는 마이크로 서비스 프레임 워크이며 Typesafe는이를 그대로 홍보합니다. 마이크로 서비스에는 검색,로드 밸런싱, 통신이 필요하며 akka는 대부분의 서비스를 즉시 제공합니다. 그것은 메시지를 대신 할 수는 없지만 내부적으로 메시지 버스를 사용합니다. 단지 피어 투 피어 (peer to peer)로 외부 소프트웨어를 설치하지 않는 것입니다. 그것은 vert.x와 동일합니다. 클러스터링을 위해 akka를 사용했다면 RabbitMQ는 어디에서 사진을 찍습니까? –

0

전체 유형 안전 스택은 마이크로 서비스를 중심으로 구축됩니다. 의심스러운 점이 있다면 프레젠테이션을 읽으십시오. Akka 스트림 Alla HTTP 모두이 방향입니다 ... Microservice에 대한 내 생각이 내 것과 다릅니다 ... 그렇다고해도 당신은 주요 요점을 놓친 .. 분산 결함 관용 아키텍처 문제는 Akka에 의해 해결되기로되어 있었다. 당신이 rabbitmq를 사용한다면, 당신은 akka의 모든 이익을 얻지 못할 것이다 .. 위치 투명성과 같이 .. 배우 heiraarchy .. do post 귀하의 아키텍처 다이어그램을 Akka 포럼으로 가져오고 어떤 응답을 얻을 수 있는지 알아보십시오

+0

전체 유형 안전 스택은 마이크로 서비스를 중심으로 구축되었습니다. 의심스러운 점이 있다면 프레젠테이션을 읽으십시오. Akka 스트림 Alla HTTP 모두이 방향입니다 ... Microservice에 대한 내 생각이 내 것과 다르다고 생각합니다. 주요 지점 .. 분산 된 내결함성 아키텍처 문제는 Akka가 해결할 것으로 생각되었습니다.당신이 rabbitmq를 사용한다면 akka의 모든 이점을 얻지 못할 것입니다 .. 위치 투명성처럼 ... 배우 heiraarchy .. 아카 포럼에 건축 다이어그램을 게시하고 어떤 반응을 얻는 지보십시오 –