1

동기화 된 키워드는 하나의 JVM 만있을 때 작동하지만 1 개 이상의 JVM이있는 경우 JVM의 인스턴스가 두 개 이상이므로 그 경우 어떻게하면 스레드 안전을 얻을 수 있습니까?여러 JVM 또는 컨테이너가 공유 메모리에 액세스하는 경우 Java에서 스레드 안전성을 얻는 방법?

주어진 경우 각 컨테이너는 별도의 인스턴스를 만듭니다. 3 개의 분리 된 jvm 인스턴스가 있다고 가정하고 이들 인스턴스가 동일한 계정에서 일부 트랜잭션 신용 또는 직불 카드를 처리하는 경우이 트랜잭션을 직렬화되거나 원자 적으로 또는 상호 배타적으로 만들 수 있습니까? 누구나 최선의 접근법을 말할 수 있습니까?

+1

매우 복잡하고 광범위하므로 구체적인 사용 사례를 제공하여 질문의 범위를 좁힐 수 있습니다. –

+1

이것은 어려운 문제입니다. 귀하의 선택은 상황에 따라 다릅니다. –

+0

동일한 질문이 여러 컴퓨터에 적용됩니다. 위에서 말했듯이 너무 복잡하고 광범위합니다. 범위를 좁히십시오. – edharned

답변

0

JVM에서 제공하는 Synchronized 키워드와 Lock은 독립 실행 형 응용 프로그램에서만 작동하기 때문에 이러한 기술을 사용하여 클러스터에서 스레드 안전성을 유지할 수 없습니다.

가장 일반적인 방법은 관계형 데이터베이스에서 제공하는 트랜잭션을 사용하는 것입니다.

다른 기술자를 사용하여 분산 자물쇠를 구현할 수 있습니다. 내가 생각하기에 사육사, Redis를 사용할 수 있다는 것을 알고 있습니다.