트라이던트 트랜잭션 토폴로지를 구현해야합니다. 카프카를 스파우트로 사용하여 내 토폴로지를 트랜잭션으로 만들 수 있음을 알았습니다. 내가 https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka 폭풍에 대한 카프카 주둥이지만 그것은 거래가 아니에요. 또한 https://github.com/nathanmarz/storm/blob/master/storm-core/src/jvm/storm/trident/spout/IOpaquePartitionedTridentSpout.java은 트라이던트 카프카 트랜잭션 스파우트입니다. 그러나 나는 그것에 대한 maven 소스가 없으며 그것을 사용하기위한 지침이 없습니다. 카프카 스톰 스파우트를 사용하는 방법에 대해서만 설명합니다. 또한 파티션 된 카프카 구현을위한 지침이 필요합니다. 트랜잭션 토폴로지를 구현 한 경험이 있다면 제발 도와주세요! 고맙습니다!Trident kafka 트랜잭션 오우 토
답변
당신은 이것을 Kafka Spout에서 보았습니까?
트랜잭션 스파우트는 토폴로지가 트랜잭션 성을 보장하기에 충분하지 않습니다. OpaqueTridentKafkaSpout는 다음과 같은 속성을 구현 : 주어진 TxID 삽입에 대한
- 일괄 처리는 항상 동일합니다. txid에 대한 일괄 처리의 재연은 해당 txid에 대해 일괄 처리가 처음으로 생성 된 것과 동일한 튜플 세트를 완료합니다.
- 튜플의 배치간에 겹치는 부분이 없습니다 (튜플이 배치 또는 다른 배수 일 때 배수가 아님).
- 모든 튜플이 배치에 있습니다 (튜플을 건너 뛰지 않음).
그러나 당신은 당신의 데이터베이스 업데이트가 당신이 처리 정확히 한 번만 달성하기 위해 튜플
의 각 배치에 대해 정확히 한 번만 실행되도록 당신이 트랜잭션 상태를 구현해야 다음 몇 가지 계산을 유지하려고하면 배치 트랜잭션 ID 및 이전 업데이트 값을 계산에 사용합니다. 당신은 튜플의 다음 배치를 처리하는
: [ "사람"] [ "사람"] [ "개"] 트랜잭션 ID와 관련 "3"
의이 documentation의 예를 살펴 보자
데이터베이스에서 현재 일부 단어 카운터를 키/값 쌍으로 보유합니다.
man => [count = 3, txid = 1]; dog => [count = 4, txid = 3]; apple => [count = 10, txid = 2]
키 "dog"와 연관된 txid가 현재 처리 트랜잭션과 동일하므로이 업데이트를 건너 뛸 수 있습니다. 튜플 "dog"는 이미이 트랜잭션을 위해 업데이트되었습니다. 그러나 다른 튜플의 경우는 아닙니다. 데이터베이스를 업데이트 한 후에는 다음과 같습니다.
남자 => [개수 = 5, txid = 3]; dog => [count = 4, txid = 3]; apple => [count = 10, txid = 2]
이렇게하면 Trident는 트랜잭션 ID와 이전 값을 비교하여 업데이트를 수행해야하는지 결정할 수 있습니다.
Map State을 살펴보세요.
기본적으로 트랜잭션 토폴로지는 트랜잭션 스파이와 트랜잭션 상태로 구성됩니다. 나는이 당신을 도움이되기를 바랍니다 http://storm.incubator.apache.org/documentation/Trident-state
:
이 페이지에 삼지창 상태에 대한 자세한 정보를 찾을 수 있습니다.
- 1. 오우 - 복사보기?
- 2. Trident 기반 앱에서 JavaScript 디버깅
- 3. 폭풍 - DRPC 대 거래 대 Trident - 언제 무엇을 사용해야합니까?
- 4. Cocoapods는 프로젝트 오우 광산에서 cocoapods을 설치하려고 오류
- 5. 틱택 토 게임 C++
- 6. 스칼라 토 리포트 인코딩
- 7. Kafka Connector - Kafka 용 JMSSourceConnector 토픽
- 8. Kafka ByteArray
- 9. Trident Animation Library 샘플을 사용하는 방법
- 10. Redis에서 쓰는 Trident 또는 Storm 토폴로지
- 11. Apache storm Trident - 토폴로지를 동적으로 생성
- 12. 토 로이드 배열 만드는 법?
- 13. 모킷 토 예외 예외 발생
- 14. 파이썬 비트 토 런트 라이브러리
- 15. Clojure의 에라 토 스테 네스
- 16. Z3 - 체크 - 토 사용을위한 인수
- 17. 비트 토 런트 프로토콜 구현
- 18. kafka-node를 사용하여 소비 된 kafka 메시지의 커밋을 제어하는 방법
- 19. Kafka 0.8.1 Async Producer in Scala - Kafka 클러스터가 다운되었습니다.
- 20. kafka-node 라이브러리를 사용하여 kafka 서버에서 주제 목록을 얻으려면 어떻게해야합니까?
- 21. 카프카 스톰 (Kafka Storm) 통합 카프카 스파우트 (Kafka Spout) 사용
- 22. Kafka 0.9.0.x Windows 버전에 kafka-consumer-groups.bat가없는 이유는 무엇입니까?
- 23. Logsatsh 및 kafka
- 24. Pentaho Kafka 제작자 예
- 25. 많은 수의 채널 Kafka
- 26. Spark Streaming Kafka Consumer
- 27. Monit with Kafka
- 28. Bluemix Kafka 스트림
- 29. 봄 구름 스트림 kafka
- 30. MSSQL과 KAFKA 통합
카프카를 사용하면 내 토폴로지가 정확히 한 번 의미론을 통해 트랜잭션을 보장합니까? – Vladimir
내가 찾은 MEMCACHEDSTATE를 사용할 수 있습니까? https://github.com/nathanmarz/trident-memcached/blob/master/src/jvm/trident/memcached/MemcachedState.java opaquetridentkafkaspout https : // github와 함께 사용할 수있는 불투명 한 상태를 제공한다는 것을 읽었습니다. .com/nathanmarz/storm-contrib/blob/master/storm-kafka/src/jvm/storm/kafka/trident/OpaqueTridentKafkaSpout.java – Vladimir
많은 질문을하고 있을지 모르지만 누구에게도 예제가 있습니까? 나는 카프카 스톰에 완전히 새로운 사람입니다. 내 주제 중 하나에서 소비하는 폭풍을 성공적으로 구현했지만 거래를 원했습니다. 어떤 도움을 주시면 감사하겠습니다 !!! :) –