1

다음 응용 프로그램을 개발하는 중이고 정말 다각형 지속성을 사용하고 싶습니다. 다른 서비스에 대해 서로 다른 데이터 구조를 쿼리 할 수 ​​있다는 생각을 좋아합니다. 필자는 기본적으로 MongoDB, Neo4j/Titan, SQL 및 Cassandra/Hbase를 동기화하려고합니다.시작 응용 프로그램을위한 다중 언어 지속성

현재 try/catch 블록에서 모든 것을 래핑하고 하나가 실패하면 다시 롤백합니다. 그러나, 이것은 나의 쓰기 시간에 과세하고있다. Kafka 나 ZeroMQ와 같은 AMQP 시스템도 살펴 보았습니다. 그러나 이것들은 데이터 중심적으로 보이지만, 어플리케이션은 여전히 ​​작지만 효율적으로 유지하려고합니다.

아무도이 경험이 있습니까? MQ는 작은 응용 프로그램을위한 좋은 아이디어입니까, 아니면 내가 조기에 최적화하고 있습니까?

감사

답변

1

내가 ZeroMQ에 대해 꽤 알고 있지만 당신이 언급 데이터베이스 서버에 대해 많은.

먼저 ZeroMQ에 대해 약간 혼란스러워합니다. AMQP의 경험에서 파생되었지만 ZMTP 와이어 프로토콜을 사용합니다. 이것은 ZeroMQ 개발 중에 맞춤 설계되었지만 다른 응용 프로그램에서는 이제이를 사용합니다.

ZeroMQ는 모든 노드에서 대칭 인 작고 매우 빠른 MQ 라이브러리입니다. 그것은 작은 애플 리케이션을 위해 매우 좋다. 여기서 문제는 ZMTP가 ZeroMQ이든 브리지이든 상관없이 ZMTP를 말하는 다른 시스템에서 뭔가를 필요로한다는 것입니다. 다른 시스템을위한 플러그인 또는 유사한 것을 만들려한다면 잘 만드십시오.

JMS를 사용하여 추가 기능을 개발하지 않고 다른 시스템과 통신하고 있다고 가정합니다. 어떤 경우에는 아마 JMS가 붙어있을 것이다. Kafka는 내가 따라 잡지 못한 새로운 것이지만 RabbitMQ는 훌륭하고 빠르며 작은 브로커입니다. FWIW. 찾을 수있는 많은 중개인 비교가 있습니다. 많은 사람들은 설정의 작은 조정을 통해 성능에 크게 영향을 줄 수 있으며 반드시 사과와 사과를 비교하지는 않는다는 점에서 위험합니다. 해당 환경에서 브로커 성능을 비교하려는 경우 직접 수행하는 방법은별로 없습니다. 브로커가 롤백 성능 향상에 도움 기대 방법 나를 혼란

한 가지입니다. 브로커를 통해 비동기 적으로 수행하더라도 여전히 동일한 방식으로 롤백을 수행해야합니다.

+0

안녕하세요, 감사합니다. rabbitmq가 더 일반적인 프로토콜을 제공합니까? – patrickbarker

1

저는 CloudBoost.io (https://www.cloudboost.io)에서 일하고 있으며 데이터베이스 상단에있는 레이어를 만들어 Polyglot Persistence 지속성을 제공합니다. 우리는 MongoDB, ElasticSearch, Redis, Cassandra 및 Neo4j를 통합하고 데이터를 쿼리/저장할 수있는 단일 API를 제공합니다. Google은 검색어/저장 요청 패턴을 기반으로 다양한 데이터베이스에 데이터를 자동 분류합니다.

도움이 될지 알려주세요. :)

0

Neo4j Doc Manager 프로젝트가 지금이 Neo4j하는 MongoDB의 데이터를 동기화하십시오. MongoDB의 작업을 모니터링하여 문서 작업을 속성 그래프 모델로 변환하고 즉시 Neo4j에 씁니다.

관련 문제