에서 이벤트 구동 아키텍처 이벤트가 시스템을 통해 전송 될 때, 각 성분은 작용한다.
브레이크 페달과 브레이크 라이트가 장착 된 가상 자동차를 상상해보십시오.
- 광 회전 브레이크 에 그것이 받으면 brake_on의 이벤트 및 오프 그것이 받으면 brake_off의 이벤트.
- 브레이크 페달이 전송 brake_on의 버튼을 눌렀을 경우, 및 brake_off의 출시 이벤트.
브레이크 페달을 밟은 상태 에서 자동차를 켜는 상황이 될 때까지이 모든 것이 좋습니다 . 제동등이 제동 이벤트를 수신하지 않았 으므로 , 바람직하지 않은 상황이 계속 유지됩니다. 기본적으로 브레이크 표시등을 켜면 상황이 반전됩니다.
이 '초기 상태 문제'를 해결하기 위해 무엇을 할 수 있습니까?
편집 : 모든 답변에 감사드립니다. 내 질문은 실제 자동차에 관한 것이 아닙니다. 자동차에서는 계속해서 상태를 전송하여이 문제를 해결했습니다. 따라서 해당 도메인에는 시작 문제가 없습니다. 내 소프트웨어 도메인 에서이 솔루션은 많은 불필요한 CPU주기를 사용합니다.
편집 2 : @gbjbaanb의 답변 외에도 다음 과 같은 시스템을 사용하려고합니다.
- 가상 브레이크 페달은, 초기화 후에, 그 상태와 이벤트를 전송 하고
- 가상 브레이크 라이트는 초기화 후 브레이크 페달에서 상태 이벤트를 요청하는 이벤트를 보냅니다.
이 솔루션을 사용하면 구성 요소간에 종속성이없고 경쟁 조건이없고 오래된 메시지 큐가 없으며 '마스터'구성 요소가 없습니다.
initialize
필요한 센서 데이터가 포함 된 "합성"이벤트를 생성하는 것입니다 .