현재 두 개의 마이크로 서비스가 있습니다. 우리는 그들을 전화 할게 A
하고 B
.
마이크로 서비스 하의 데이터베이스 A
에는 다음 표가 있습니다.
A
|-- users
마이크로 서비스 하의 데이터베이스 B
에는 다음 표가 있습니다.
B
|-- trackers
요구 사항 상태 users
와 trackers
다 대다 관계를 가지고있다.
마이크로 서비스 아키텍처 내에서 올바르게 처리하는 방법을 모르겠습니다.
이 세 가지 방법 중 하나가 작동하는 것을 볼 수 있습니다.
user_trackers
표 microservice에 추가됩니다A
. A가에 테이블을 포함하는 "외부 키"가입이 비슷한 역할을users
하고trackers
.owners
표 microservice에 추가됩니다B
. 이 테이블은 다형성 조인 테이블과 유사하게 작동합니다. 이것은 모든 서비스가 트래커와의 연결을 만들 수있게합니다. 이것은 다음과 같이 보일 수 있습니다.B |-- trackers |-- owners |-- owner_id |-- owner_type |-- tracker_id
- 에 대한 기록 유지
users
및trackers
각 microservice에 있습니다. 그것들을 일종의 pubsub 시스템과 동기화하십시오.
원래 트랜잭션 2를 유지하는 것을 좋아했기 때문에 옵션 2를 사용하려고했습니다. 트래커를 만들어 원자 적으로 연결할 수 있습니다. 그러나 마이크로 서비스의 범위를 벗어난 것으로 보입니다 B
. 마이크로 B
서비스가 A
연관을 작성하려는 마이크로 서비스 관리를 왜해야 합니까?
여기에 내가 알지 못하는 좋은 패턴이 있다고 생각합니다. 내가 배치 한 옵션 중 어떤 것이 의미가 있습니까? 더 이해하기 쉬운 다른 옵션이 있습니까?