2016-07-26 5 views
1

저는 후배 개발자입니다. 이제는 분산 시스템 인 bank에 관한 프로젝트를 진행하고 있습니다. 전에 알았던 것은 분산 시스템의 구성 요소 간 통신을 실현하기 위해 ZeroMQ과 같은 메시지 라이브러리가 있다는 것입니다. 그러나 이제는 프로젝트에서 오라클 대기열을 사용했습니다.
ZeroMQ vs Oracle queuing

제 동료가 프로세스가 우발적으로 종료되는 경우에도 보낼 메시지가 손실 될 염려가 없으므로이 방법이 더 좋습니다.

내 질문 : 오라클, 대기열이 더 나은 경우 Q1: 때 우리는 ZeroMQ 같은 것들을 사용해야
?

Q2:ZeroMQ과 비교하여 Oracle 대기열의 단점은 무엇입니까?

+0

요점은 아마도 이미 데이터베이스로 Oracle을 사용하고 있으므로 대기열에 사용할 수도 있습니다. 그것은 무료 기능을위한 기능과 같습니다 ... – dcieslak

+0

오라클의 AQ 단점은 명확합니다 - 성능 (및 가격). 때로는 버그에 직면 할 수도 있습니다. AQ는 다른 (무료) 메시징 시스템, 트랜잭션 지원, XA 지원, 온라인 백업 지원, HA 클러스터링 지원을 이겼습니다. – ibre5041

+1

ZeroMQ는 ** 대기열 메커니즘이 아닙니다 **. 바인딩 등으로 피어 검색과 같은 특정 작업을 수행하기 위해 대기열 처리와 함께 제공되는 ** 전송 ** 메커니즘입니다. ZeroMQ에 대기중인 데이터를 유지할 수는 있지만 상자 밖으로 나오지는 않습니다. ZMQ의 다른 장점은 시장에서 가장 빠른 것은 없으며 분산 시스템을 다루는 개발자라면 다른 장점이 있다는 것입니다. ZMQ는 메시지를 잃지 않습니다. 친구가 ZMQ에 대해 잘못된 가정을하고 숙제를하지 않았습니다. 그래서 피어 개발자의 임의적 인 이야기를 듣기 전에 매뉴얼을 읽습니다. – Mjh

답변

-1

Oracle AQ에는 지속성이 있고 zeroMQ는 메모리에 있기 때문에 동료가 바로 여기 있습니다. 초당 최대 메시지 (수백만)가 필요한 경우 zeroMQ를 사용합니다. 오라클은 AQ에 대해 추가 비용을 부과하지 않기 때문에 가격은 중요하지 않습니다. 오라클 XE에서도 무료입니다.

응용 프로그램이 이미 Oracle에 의존하는 경우, 메시징을 Oracle에 배치하는 데 단점이 없습니다.

+2

ZMQ 메시지를 영속화하는 많은 예가 있습니다 (Malamute broker, Titanic 서비스 프로토콜). 그것은 "친구"가 옳았다 고 분명히 기각하고 토론을 바꾼다. – Mjh

+0

영구 ZMQ를 구현하는 방법에 대한 예제를 찾지 못했습니다. ZMQ로 수행 할 수 있다는 사실은 ZMQ가 전송 및 * 영속 대기열 만 다루기 때문에 ZMQ가 작업에 적합한 도구가 아니라는 것을 강조합니다. 영업 이익은 신뢰성을 위해 AQ를 선택했다. –

+0

나는 ZMQ가 올바른 도구라고 강조하고 싶지 않습니다. 나는 OP의 친구가 ZMQ가 신뢰할 수 없다고 말한 부분에 대해 토론하고 있습니다. 그것은 단지 거짓입니다. 이것은 여러 통신 프로토콜을 사용하는 전송 계층입니다. 그 중 하나는 신뢰할 수없는 전선을 통한 안정적인 통신을 위해 만들어진 TCP입니다. ZMQ를 영속화하는 방법에 관해서는 예제를 찾지 못했을 때 의문을 제기하지 않을 것이지만 여기에는 설명과 코드 예제가 들어있는 예제가 많이 있습니다 (http://zguide.zeromq.org/php:chapter4).). – Mjh