ืืืฉื ืชืจืืื ืฉื ืกืคืจ ืงืื:
ืืื ืช Message Brokers
ืืืืจ: Jakub Korab, ืื"ื: O'Reilly Media, Inc., ืชืืจืื ืคืจืกืื: ืืื ื 2017, ISBN: 9781492049296.
ืืืืง ืืืชืืจืื ืืงืืื:
ืคืจืง 3
ืงืคืงื
ืงืคืงื ืคืืชื ืขื ืืื ืืื ืงืืืื ืืื ืืขืงืืฃ ืืื ืืืืืืืืช ืฉื ืืชืืืืื ืืืืขืืช ืืกืืจืชืืืช ืืืืืื ืข ืืืฆืืจื ืืืืืืจ ืืกืคืจ ืืชืืืืื ืฉื ืืืืขืืช ืขืืืจ ืืื ืืจืืงืฆืืืช ืฉืื ืืช ืื ืงืืื ืื ืงืืื, ืืืชืืืจืช ืืกืคืจ ืื ืชืืช "ืืืืื ืืืงืื ื" ืืขืืื 28 ืืงืจื ืฉืืืืฉ ืืื ืงืืืื ืืกืชืืื ืืืืื ืจืื ืขื ืงืืืื ืื-ืืืืื ืืช ืฉื ืืืืืืช ืืืืืืช ืืืื ืฉื ื ืชืื ืื, ืืืื ืงืืืงืื ืขื ืขืืืืื ืืืืื ื ืืืฉื, ืชืื ืฉืืื ืืืคืฉืจืช ืืืฉืชืืฉ ืื ืชืื ืื ืืื ืขื ืืื ืืกืคืจ ืืขืจืืืช ืืืื ืืืฉืคืืข ืขื ืืคืจืืืืงืืืืืืช ืฉื ืืฆืจื ืื ืื ืฆืจืื ืื ืืืจืื. ืืืขืฉื, ืืกืืื ืฉืงืคืงื ืงืืื ืืื ืืื ืืงืื ืืจืืืืงืืืจืช ืืืืขืืช ืืืกืื ืฉืืชืืจ ืฆืื ืืจ ืื ืชืื ืื ืืืื ืืืจืกืื.
ืืืื ืชื ืืืจื ืกืืคืืช ืื, ืขืื ืืืืคื ืืืขื ืืจืืฉืืช ืืืจืืช. ืงืคืงื ืฆืจืื:
- ืืื ืืืืจ ืืืืืื
- ืกืคืง ืจืืื ืคืก ืจื ืืืชืจ ืืขืช ืขืืืื ืขื ืืืืขืืช
- ืชืืืื ืืืืืืื ืฉื Publisher-Subscriber ื-Point-to-Point
- ืื ืชืื ืืช ืืงืฆื ืืืืกืคืช ืฆืจืื ืื. ืืืืืื, ืืืืฆืืขืื ืฉื ืืชืืจ ืืื ืฉื ืื ืืฉื ื-ActiveMQ ืืืจืืื ืืื ืฉืืกืคืจ ืืฆืจืื ืื ืืืขื ืืื.
- ืืืืืช ื ืืชื ืืืจืืื ืืืคืงืืช; ืื ืืชืืื ืืื ืฉืืืฉืื ืืืืขืืช ืืืื ืืขืฉืืช ืืืช ืจืง ืืืืืจืืช ืืืืกืง ืืืงืกืืืืืช, ืื ืืืืื ื ืืืืช ืืขืืจ ืืืืคืข ืืชืืื ืืืื ืืื ืืืืืืจ ืืช ืืืืฆืืขืื
- ืืืื ืืช ืืืืฉื ืืืืกืื ืืืืืืจ ืืืืฉ ืฉื ืืืืขืืช
ืืื ืืืฉืื ืืช ืื ืื, ืงืคืงื ืืืืฅ ืืจืืืืงืืืจื ืฉืืืืืจื ืืืืฉ ืืช ืืชืคืงืืืื ืืืืืจืืืช ืฉื ืืงืืืืช ืืืชืืืืื ืืืขืืจืช ืืืืขืืช. ืืืื JMS ืืืืื ืืืื ืืืจืืงืจ, ืืืฉืจ ืืืชืืื ืืืจืื ืขื ืืคืฆืช ืืืืขืืช ืืืืงืืืืช ืฆืจืืืื ืจืง ืืืืื ืืืื ืฉืืืืช ืืงืืืช ืืืืขืืช. ืงืคืงื, ืืขืืืช ืืืช, ืืชืืงื ืืืงืื, ืืืฉืจ ืืืงืื ืืืงื ืขื ืขืฆืื ืจืืืช ืืืชืืื ืืช ืฉื ืืจืืงืจ ืืกืืจืชื, ืืื ืืคืฆื ืืืื ืช ืฉื ืืกืจืื ืจืืืื ืืืื ืืฆืจืื ืื, ืืชืืืจื ืืืจืืงืจ ืืืืจ ืืืืืื ืื ืืชื ืืืจืืื. ืขืืืจ ืื ืฉืื ืฉืขืืื ืขื ืืขืจืืืช ืืืืขืืช ืืกืืจืชืืืช, ืขืืืื ืขื ืงืคืงื ืืืจืฉืช ืฉืื ืื ืืืฉืืชื ืืืืชื.
ืืืืื ืื ืืกื ืื ืืืืื ืืืฆืืจืช ืชืฉืชืืช ืืืืขืืช ืืืกืืืืช ืืืืืื ืืช ืืชืคืืงื ืืกืืจื ืืืื ืจืืื ืืืฉืืืื ืืืจืืงืจ ืงืื ืื ืฆืืื ืื. ืืคื ืฉื ืจืื, ืืืฉื ืื ืืืืขื ืขื ืคืฉืจืืช, ืื ืฉืืืืจ ืฉืงืคืงื ืืื ื ืืชืืื ืืกืืืื ืืกืืืืื ืฉื ืขืืืกื ืขืืืื ืืชืืื ืืช ืืืชืงื ืืช.
ืืืื ืืขื ืืืืื
ืืื ืืขืืื ืืืจืืฉืืช ืืืชืืืจืืช ืืขืื, ืงืคืงื ืฉืืื ืืืืขืืช ืคืจืกืื-ืืจืฉืื ืืืืืขืืช ืื ืงืืื ืื ืงืืื ืชืืช ืกืื ืืื ืฉื ืืขื - ื ืึนืฉืึตื. ืื ืืืืื ืื ืฉืื ืฉืขืืื ืขื ืืขืจืืืช ืืืืขืืช, ืืืฉืจ ืืืืื "ื ืืฉื" ืืชืืืืกืช ืืื ืื ืื ืฉืืืืจ ืฉืืื ื (ืืื ืืฉื) ืืงืจืืื ืืื ื ืขืืืื. ื ืืฉืื ืงืคืงื ืฆืจืืืื ืืืืืฉื ืืกืื ืืขื ืืืืจืืื, ืืคื ืฉืืืืืจ ืืืืื ืืกืคืจ ืื.
ืืืืฉื ืคืจืง ืื, ืืื ืื ืื ื ืฆืืื ืืืคืืจืฉ ืืืจืช, ืืืื ื "ื ืืฉื" ืืชืืืืก ืื ืืฉื ืงืคืงื.
ืืื ืืืืื ืืืื ืืืฆื ื ืืฉืืื ืืชื ืืืื ืืืืื ืขืจืืืืืช ืื ืืกืคืงืื, ืขืืื ื ืืืืืง ืชืืืื ืืืฆื ืื ืืืืฉืืื ืืงืคืงื.
ืืื ื ืืฉื ืืงืคืงื ืืฉ ืืืื ืืฉืื.
ืืคืืงืื ืฉืฉืืืืื ืืืืขืืช ืืงืคืงื ืืืชืืื ืืืืื ืืื, ืืฆืจืื ืื ืงืืจืืื ืืืืืื ืืืืฆืขืืช ืืฆืืืขืื ืฉืืชืงืืืื ืื ืืืื. ืืขืช ืืขืช, ืงืคืงื ืืืืง ืืช ืืืืงืื ืืขืชืืงืื ืืืืชืจ ืืืืื, ืืื ืื ืืืืืขืืช ืืืืงืื ืืื ื ืงืจืื ืืืื ืื ืื. ืืืง ืืจืืื ืืขืืฆืื ืฉื ืงืคืงื ืืื ืฉืืืชืืื ืื ืืืคืช ืื ืืืืขืืช ื ืงืจืืืช ืื ืื - ืื ืืืจืืืชื ืฉื ืืืงืื.
ืืืื ืืื "ืืืื" ื"ืืฆืืืข" ืืื ื ืืืคืืขืื ื
ืชืืขืื ืงืคืงื . ืืื ืืื ืืืืขืื ืืื ืืฉืืฉืื ืืื ืืื ืืกืืืข ืืืื ื.
ืืืืื ืืื ืฉืื ื ืืืืืืื ื-ActiveMQ, ืฉืื ืืืืขืืช ืืื ืืชืืจืื ืืืืืกื ืืช ืืืืชื ืืืื, ืืืืจืืงืจ ืืกืื ืืช ืืืืืขืืช ืื ืืืงืืช ืืืืจ ืงืจืืืชื.
ืืขืช ื ืืคืืจ ืงืฆืช ืืืชืจ ืืขืืืง ืื ืชืืื ื ืืืืื ืื ืืฉื ืืืชืจ ืคืืจืื.
ืืืื ืงืคืงื ืืืจืื ืืืกืคืจ ืืืืฆืืช (
ืืืืจ 3-1. ืืืืฆืืช ืงืคืงื
ืืืฉืจ ืืคืืง ืฉืืื ืืืืขื ืื ืืฉื ืงืคืงื, ืืื ืืืืื ืืืืื ืืืืฆื ืืฉืืื ืืช ืืืืืขื. ื ืืื ืืืช ืืืชืจ ืคืืจืื ืืืืฉื.
ืงืจืืืช ืืืืขืืช
ืืืงืื ืฉืจืืฆื ืืงืจืื ืืช ืืืืืขืืช ืื ืื ืืฆืืืข ืืฉื ืฉื ืงืจื ืงืืืฆืช ืฆืจืื ืื, ืื ืฉืืฆืืืข ืขื ืึฐืงึทืึตื ืืืืขืืช ืืืืืฆื. ืืืกื ืืื ืืืงืื ืืฆืืืจ ืฉืืชืืื ื-0 ืืชืืืืช ืืืืฆื. ืงืืืฆืช ืฆืจืื ืื ืื, ืืืืืืจืช ื-API ืืืืฆืขืืช group_id ืืืืืืจ ืขื ืืื ืืืฉืชืืฉ, ืชืืืืช ืฆืจืื ืื ืืขืจืืช ืืืืืช ืืืช.
ืจืื ืืขืจืืืช ืืขืืจืช ืืืืืขืืช ืงืืจืืืช ื ืชืื ืื ืืืืขื ืชืื ืฉืืืืฉ ืืืกืคืจ ืืืคืขืื ืืฉืจืฉืืจืื ืืื ืืขืื ืืืืขืืช ืืืงืืื. ืืคืืื, ืืืจื ืืื ืืืื ืืงืจืื ืจืืื ืฉื ืฆืจืื ืื ืืืืืงืื ืืช ืืืชื ืงืืืฆืช ืฆืจืื ืื.
ืืขืืืช ืืงืจืืื ืืืืื ืืืืืช ืืืืฆืืช ืืืืคื ืืื:
- ืื ืืฉื ืืฉ ืืกืคืจ ืืืืฆืืช
- ืืกืคืจ ืงืืืฆืืช ืฉื ืฆืจืื ืื ืืืืืืช ืืืฉืชืืฉ ืื ืืฉื ืื-ืืื ืืช
- ืืงืืืฆืช ืฆืจืื ืื ืืืืืื ืืืืืช ืืกืคืจ ืืืคืขืื ื ืคืจืืื
ืื ืืขืื ืื ืืจืืืืืืืืช ืฉื ืจืืื ืืจืืื. ืืื ืืืืื ืืืฆื ืงืคืงื ืืืคื ืืืืกืื ืืื ืงืืืฆืืช ืฆืจืื ืื, ืืืคืขื ืฆืจืื ืื ืืืืืฆืืช, ืืื ื ืกืชืื ืขื ืกืืจื ืฉื ืชืจืืืฉื ืงืจืืื ืืืจืืืื ืืืชืจ ืืืืชืจ.
ืฆืจืื ืื ืืงืืืฆืืช ืฆืจืื ืื
ืืืื ื ืืงื ืื ืงืืืช ืืชืืื ื ืืฉื ืขื ืืืืฆื ืืืช (
ืืืืจ 3-2. ืืฆืจืื ืงืืจื ืืืืืฆื
ืืืฉืจ ืืืคืข ืฆืจืื ื ืืชืืืจ ืขื group_id ืืฉืื ืื ืืฉื ืื, ืืืงืฆืื ืื ืืืืฆืช ืงืจืืื ืืงืืืื ืืืืืฆื ืื. ืืืืงืื ืฉื ืืืกื ืื ื ืืชื ืืืืืจื ืืืงืื ืืืฆืืืข ืืืืงืื ืืขืืื ื ืืืืชืจ (ืืืืืขื ืืืืฉื ืืืืชืจ) ืื ืืืืงืื ืืืืงืื ืืืืชืจ (ืืืืืขื ืืืฉื ื ืืืืชืจ). ืืฆืจืื ืืืงืฉ (ืกืงืจืื) ืืืืขืืช ืืื ืืฉื, ืื ืฉืืืจื ืืืงืจืืชื ืืจืฆืฃ ืืืืืื.
ืขืืืช ืืงืืืื ืืืืืืช ืืงืืืขืืช ืืืืจื ืืงืคืงื ืืืืืืกื ืช ืืืืืขืืช ืื ืืฉื ืคื ืืื _ืงืืืื_ืฆืจืื. ืืืืขืืช ืฉื ืงืจืื ืขืืืื ืื ื ืืืงืืช, ืื ืืืื ืืืชืืื ืจืืื, ืืืืงืื ืืืื ืืืจืืฅ ืืืืืจ ืืช ืืงืืืื ืืื ืืขืื ืืืืฉ ืืืืขืืช ืฉืืืจ ื ืฆืคื.
ืืืฉืจ ืฆืจืื ืืืื ืฉื ื ืืชืืืจ ืืืืฆืขืืช group_id ืืืจ, ืืื ืื ืื ืืฆืืืข ืฉื ื ืฉืืื ื ืชืืื ื-(
ืืืืจ 3-3. ืฉื ื ืฆืจืื ืื ืืงืืืฆืืช ืฆืจืื ืื ืฉืื ืืช ืงืืจืืื ืืืืชื ืืืืฆื
ืฆืจืื ืื ืืงืืืฆืช ืฆืจืื ืื
ืืืฉืจ ืืืคืข ืฆืจืื ืืื ืงืืจื ื ืชืื ืื ืืืืืฆื, ืืฉ ืื ืฉืืืื ืืืื ืขื ืืืฆืืืข ืืืขืื ืืืืขืืช ืืืชืืืจ ืืกืขืืฃ ืืงืืื.
ืื ืืกืคืจ ืืืคืขืื ืฉื ืฆืจืื ืื ืืื ืืืืืจืื ืขื ืืืชื group_id ืื ืืฉื ืขื ืืืืฆื ืืืช, ืื ืืืืคืข ืฉืืชืืืจ ืืืจืื ืืงืื ืฉืืืื ืขื ืืืฆืืืข ืืืืืชื ืจืืข ืืื ืืงืื ืืช ืื ืืืืืขืืช (
ืืืืจ 3-4. ืฉื ื ืฆืจืื ืื ืืืืชื ืงืืืฆืช ืฆืจืื ืื ืงืืจืืื ืืืืชื ืืืืฆื
ื ืืชื ืืืฉืื ืขื ืืืคื ืขืืืื ืื, ืฉืื ืืกืคืจ ืืืคืขื ืืฆืจืื ืขืืื ืขื ืืกืคืจ ืืืืืฆืืช, ืืกืื ืฉื ืฆืจืื ืืืขืื. ืื ืืืื ืืืืืช ืฉืืืืฉื ืื ืืชื ืฆืจืื ืงืืืืฅ "ืคืขืื-ืคืกืืื" (ืื "ืื-ืื") ืฉื ืืืคืขื ืืฆืจืื ืื ืฉืื, ืืืจืืช ืฉืืคืขืืช ืืกืคืจ ืฆืจืื ืื ืืืงืืื ("ืคืขืืืื-ืคืขืืืื" ืื "ืืืื-ืืืื") ืืืคืืื ืืช ืืจืื ืืืชืจ ืืืฉืจ ืฆืจืื ืื ืืืฆื ืืืชื ื.
ืืชื ืืืืช ืืคืฆืช ืืืืขืืช ืื ืฉืชืืืจื ืืขืื ืืืืื ืืืืืช ืืคืชืืขื ืืืฉืืืื ืืืืคื ืฉืื ืืชื ืื ืชืืจ JMS ืจืืื. ืืืืื ืื, ืืืืขืืช ืฉื ืฉืืื ืืชืืจ ืืืืืงื ืืืืคื ืฉืืื ืืื ืฉื ื ืืฆืจืื ืื.
ืืจืื, ืืืฉืจ ืื ื ืืืฆืจืื ืืกืคืจ ืืืคืขืื ืฉื ืฆืจืื ืื, ืื ื ืขืืฉืื ืืืช ืืื ืืขืื ืืกืจืื ืืืงืืื, ืื ืืื ืืืืืืจ ืืช ืืืืจืืช ืืงืจืืื, ืื ืืื ืืืืืืจ ืืช ืืืฆืืืืช ืฉื ืชืืืื ืืงืจืืื. ืืืืืื ืฉืจืง ืืืคืข ืฆืจืื ื ืืื ืืืื ืืงืจืื ื ืชืื ืื ืืืืืฆื ืืื ืคืขื, ืืื ืื ืืืฉื ืืงืคืงื?
ืืืช ืืืจืืื ืืขืฉืืช ืืืช ืืื ืืืฉืชืืฉ ืืืืคืข ืฆืจืื ื ืืืื ืืื ืืงืจืื ืืช ืื ืืืืืขืืช ืืืืขืืืจ ืืืชื ืืืืืจ ืืฉืจืฉืืจืื. ืืขืื ืฉืืืฉื ืื ืืืืืื ืืช ืชืคืืงืช ืืขืืืื, ืืื ืืืืืื ืืช ืืืืจืืืืช ืฉื ืืืืืืื ืืฆืจืื ื ืืืื ื ืขืืฉื ืืืจ ืืื ืืืืืืจ ืืช ืืืืกื ืฉื ืืขืจืืช ืืงืจืืื. ืื ืขืืชืง ืืื ืฉื ืืฆืจืื ืืืจื ืขืงื ืืคืกืงืช ืืฉืื ืื ืืืจืืข ืืืื, ืืืืกืืจ ื ืคืกืง.
ืืืจื ืืงื ืื ืืช ืืคืชืืจ ืืขืื ืื ืืงืคืงื ืืื ืืืฉืชืืฉ ื-bะืืืืฆืืช ื ืืกืคืืช.
ืืืืฆื
ืืืืฆืืช ืื ืืื ืื ืื ืืขืืงืจื ืืืงืืืื ืืงืจืืื ืืืฉืื ืื ืงื ื ืืืื ืฉื ื ืืฉื ืืขืืจ ืืจืืื ืืคืก ืฉื ืืืคืข ืืชืืื ืืืื. ืืื ืืืืื ืืืช ืืื ืืืชืจ, ืืื ื ืฉืงืื ืืฆื ืฉืื ืืฉ ื ืืฉื ืขื ืฉืชื ืืืืฆืืช ืืฆืจืื ืืื ื ืจืฉื ืื ืืฉื ืื (
ืืืืจ 3-5. ืฆืจืื ืืื ืงืืจื ืืืกืคืจ ืืืืฆืืช
ืืชืจืืืฉ ืื, ืืฆืจืื ืืงืื ืฉืืืื ืขื ืืืฆืืืขืื ืืชืืืืื ืืช group_id ืฉืื ืืฉืชื ืืืืืฆืืช ืืืชืืื ืืงืจืื ืืืืขืืช ืืฉืชื ืืืืืฆืืช.
ืืืฉืจ ื ืืกืฃ ืฆืจืื ื ืืกืฃ ืขืืืจ ืืืชื group_id ืื ืืฉื ืื, ืงืคืงื ืืงืฆื ืืืืฉ ืืช ืืืช ืืืืืฆืืช ืืืฆืจืื ืืจืืฉืื ืืฉื ื. ืืืืจ ืืื, ืื ืืืคืข ืฉื ืืฆืจืื ืืงืจื ืืืืืฆื ืืืช ืฉื ืื ืืฉื (
ืืื ืืืืืื ืฉืืืืขืืช ืืขืืืื ืืืงืืื ื-20 ืฉืจืฉืืจืื, ืืชื ืฆืจืื ืืคืืืช 20 ืืืืฆืืช. ืื ืืืื ืคืืืช ืืืืฆืืช, ืชืืฉืืจื ืขื ืฆืจืื ืื ืฉืืื ืืื ืขื ืื ืืขืืื, ืืคื ืฉืชืืืจ ืงืืื ืืื ืืืืื ืขื ืฆืจืื ืื ืืืขืืืื.
ืืืืจ 3-6. ืฉื ื ืฆืจืื ืื ืืืืชื ืงืืืฆืช ืฆืจืื ืื ืงืืจืืื ืืืืืฆืืช ืฉืื ืืช
ืชืื ืืช ืื ืืคืืืชื ืืืื ืืช ืืืืจืืืืช ืฉื ืืจืืงืจ ืงืคืงื ืืืฉืืืื ืืืคืฆืช ืืืืืขืืช ืื ืืจืฉืช ืืฉืืืจื ืขื ืชืืจ ื-JMS. ืืื ืืชื ืื ืฆืจืื ืืืืื ืืืื ืื ืงืืืืช ืืืืืช:
- ืืืื ืฆืจืื ืฆืจืื ืืงืื ืืช ืืืืืขื ืืืื, ืืืชืืกืก ืขื ืืงืฆืื ืกืืืืืืช, ืงืืืืืช ื ืืืืืช ืฉื ืืืืจื ืืืืืจ ืืจืืฉ ืื ืืืืขืืช ืงืืืืืช (ืืื ืขืืืจ ืงืืืฆืืช ืืืืขืืช JMS).
- ืืืื ืืืืขืืช ื ืฉืืืืช ืืืืื ืฆืจืื ืื ืืืื ืืฉ ืืืกืืจ ืืืชื ืืืืฉ ืืืงืจื ืฉื ืชืงืื.
ืื ืฉืขื ืืืชืืื ืฉื ืงืคืงื ืืขืฉืืช ืืื ืืืขืืืจ ืืืืขืืช ืืจืฆืฃ ืืฆืจืื ืืืฉืจ ืืืืจืื ืืืงืฉ ืืืชื.
ืขื ืืืช, ืืืจืืฉืืช ืืืงืืืื ืืืืื ืืฉืืืื ืืืืฉ ืฉื ืืืืขืืช ืฉื ืืฉืื ืืื ื ื ืขืืืืช โ ืืืืจืืืช ืขืืืื ืคืฉืื ืขืืืจืช ืืืืชืืื ืืืงืื. ืื ืืืืจ ืฉืืฉ ืืงืืช ืืืชื ืืืฉืืื ืืงืื ืฉืื.
ืฉืืื ืืืืขืืช
ืืืืจืืืช ืืืคืืง ืฉื ืืืชื ืืืืขื ืืืืืื ืืืืื ืืืืฆื ืืฉืืื ืืืืขื. ืืื ืืืืื ืืช ืืื ืื ืื ืฉืืืืฆืขืืชื ืื ื ืขืฉื, ืจืืฉืืช ืขืืื ื ืืฉืงืื ืื ืืืืืง ืื ืื ื ืฉืืืืื.
ืืขืื ืฉื-JMS ืื ื ืืฉืชืืฉืื ืืืื ื ืืืืขืืช ืขื ืืื ื ืชืื ืื (ืืืชืจืืช ืืืืคืืื ืื) ืืืืฃ ืืืืื ืืช ืืืืขื (ืืืืขื), ืืงืคืงื ืืืืืขื ืืื ืฆืื "ืืคืชื-ืขืจื". ืืืขื ืืืืืขื ื ืฉืื ืืขืจื. ืืืคืชื, ืืขืืืช ืืืช, ืืฉืืฉ ืืขืืงืจ ืืืืืงื ืืืืื ืืืืื ืืคืชื ืกืคืฆืืคื ืืืืืืงื ืขืกืงืืชืืฉืื ืืืืขืืช ืงืฉืืจืืช ืืืืชื ืืืืฆื.
ืืคืจืง 2, ืื ื ืืชืจืืืฉ ืืืืืืจืื ืืืงืืื ืื ืฉืื ืืืจืืขืื ืงืฉืืจืื ืฆืจืืืื ืืืืืช ืืขืืืืื ืืคื ืืกืืจ ืขื ืืื ืฆืจืื ืืืื:
- ืืฉืืื ืืืฉืชืืฉ ืืืืืจ.
- ืืืกืฃ ื ืืงืฃ ืืืฉืืื.
- ืืชืืฆืข ืืืืืจ ืฉืืืฉื ืืกืฃ ืืืืฉืืื.
ืื ืื ืืืจืืข ืืื ืืืืขื ืฉืคืืจืกืื ืื ืืฉื, ืื ืืืคืชื ืืืืขื ืืืื ืืืื ืืืฉืืื.
ืืืฉืจ ืืืืขื ื ืฉืืืช ืืืืฆืขืืช ื-API ืฉื Kafka Producer, ืืื ืืืขืืจืช ืืคืื ืงืฆืืืช ืืืืฆื ืฉืืืื ืชื ืืืืืขื ืืืืฆื ืื ืืืื ืฉื ืืฉืืื ืงืคืงื, ืืืืืจื ืืช ืืืื ืืืืืฆื ืฉืืืื ืืฉ ืืฉืืื ืืช ืืืืืขื. ืชืืื ื ืื ืืืืฉืืช ื-Java ืืจื ืืืฉืง Partitioner.
ืืืฉืง ืื ื ืจืื ืื:
interface Partitioner {
int partition(String topic,
Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster);
}
ืืืืฉืื Partitioner ืืฉืชืืฉ ืืืืืืจืืชื ืืืืืื ืืืืจืืช ืืืืืืช ืืืืืืจืืช ืืืจืืจืช ืืืื ืืขื ืืืคืชื ืืื ืืงืืืข ืืช ืืืืืฆื, ืื round-robin ืื ืื ืฆืืื ืืคืชื. ืขืจื ืืจืืจืช ืืืื ืื ืขืืื ืืืื ืืจืื ืืืงืจืื. ืขื ืืืช, ืืขืชืื ืชืจืฆื ืืืชืื ืืขืฆืื.
ืืชืืืช ืืกืืจืืืืืช ืืืืงื ืืฉืื
ืืื ื ืกืชืื ืขื ืืืืื ืฉืื ืืชื ืจืืฆื ืืฉืืื ืืื ื ืชืื ืื ืืื ืขื ืืืขื ืืืืืขื. ืืืืขื ืืืืืื ืฉืื ื ืืื ืืืจืื ืืืฆืข ืืคืงืื ืืืฉืืื ืืืฉืืง. ืืืจืื ืืื ืืฉืื ืฉืืืื ื ืจืืฆืื ืืืืืื ืฉืื ืชืฉืชื ื ืืฉืืืืจ ืื ืจืฆื ืืืืืช ืืืืืื ืฉืจืง ืืขืจืืช ืืืืื ื ืืืขืื ืืืจื ืืืืื ืืืืื ืืช ืืืืจืื ืืื. ืืืงืจื ืื, ืืขืจืืืช ืืฉืืืื ืืืงืืื ืืกืืืืืช ืขื ืืฉืืืืฉ ืืืชืืื ืืื ืืืืช ืืช ืืืืืขื.
ื-JMS ืจืืื, ืื ื ืคืฉืื ืืืืืจืื ืืืคืืื "ืืชืืืช ืืืืขื" ืืืืกืืคืื ืืืชื ืืืืืขื. ืขื ืืืช, ืงืคืงื ืืื ื ืืกืคืง ืื ื ืื ืื ืื ืืืขืืจืช ืืื ื ืชืื ืื, ืืื ืจืง ืืคืชื ืืขืจื.
ืืืืืื ืฉืืขืจื ืืื ืืืขื ืืขืืจื ืื ืงืื ืฉืื ื ืจืืฆืื ืืฉืืืจ ืขื ืฉืืืืชื, ืืื ืื ื ืืจืืจื ืืื ืืืืืืจ ืืช ืืื ื ืื ืชืื ืื ืืฉืืืืฉ ืืืคืชื. ืืื ืื ืฉืื ื ืืงืืงืื ืืืืื ืืฉืืื ืืฆืืจื ืืืืงื, ืืืืจ ืืื ืืืืืขืืช ืืงืฉืืจืืช ืืืฉืืื ืืืืืืช ืืืืืช ืืขืืืืืช ืืคื ืืกืืจ, ื ืืืข ืืืื ื ื-JSON ืืื:
{
"signature": "541661622185851c248b41bf0cea7ad0",
"accountId": "10007865234"
}
ืืืืืื ืฉืขืจื ืืืชืืื ืืฉืชื ื ืืืชืื ืืืืขื, ืืกืืจืืืืืช ืืืืืื ืืจืืจืช ืืืืื ืฉื ืืืฉืง Partitioner ืื ืชืงืืฅ ืืืืคื ืืืืื ืืืืขืืช ืืงืฉืืจืืช. ืืื, ื ืฆืืจื ืืืชืื ืืกืืจืืืื ืืฉืื ื ืฉืชื ืชื ืืช ืืืคืชื ืืื ืืชืืืง ืืช ืขืจื ื-accountId.
ืงืคืงื ืืืื ืกืืืื ืืืืงื ืืืืชืืจ ืคืืืื ืืืืืขืืช ืืื ืืช ืืืฉ ืื ืกื ืืื ืฉื ืชืืื ืืช ืืืืื. ืืืจืืช ืืืช, ืืคืขืืื ืืืคืืขืืช ืืจืืฉืืช ืกืคืฆืืคืืืช ืืชืขืฉืืื, ืืื ืื ืืขืื.
ืืกืืจืืืืืช ืืืืืงื ืฉื ืืืฉืชืืฉ ืืืืืช ืืืืืื ืฉืื ืืืืืขืืช ืืงืฉืืจืืช ืืกืชืืืื ืืืืชื ืืืืฆื. ืืืจืืช ืฉืื ื ืจืื ืคืฉืื, ืืืจืืฉื ืืืืื ืืืืืช ืืกืืืืช ืืืื ืืืฉืืืืช ืฉื ืืืื ืช ืืืืขืืช ืงืฉืืจืืช ืืขื ืืื ืงืืืข ืืกืคืจ ืืืืืฆืืช ืื ืืฉื.
ืืกืคืจ ืืืืืฆืืช ืื ืืฉื ืืืื ืืืฉืชื ืืช ืขื ืืืื, ืืืืืื ืฉื ืืชื ืืืืกืืฃ ืืืชื ืื ืืชืขืืืจื ืืืจืืช ืืืฆืืคืืืช ืืจืืฉืื ืืืช. ืืคืืื, ืืคืชืืืช ืืืืขื ืืืืืื ืืืืืช ืงืฉืืจืื ืืืืืฆื ืฉืืืื ื ืฉืืื ืืืงืืจ, ืื ืฉืืจืื ืขื ืคืืกืช ืืฆื ืฉืืฉ ืืฉืชืฃ ืืื ืืืคืขื ืืืคืืง.
ืืืจื ื ืืกืฃ ืฉืืฉ ืืงืืช ืืืฉืืื ืืื ืืืืงื ืฉืืื ืฉื ืืืืขืืช ืขื ืคื ื ืืืืฆืืช. ืืืจื ืืื, ืืคืชืืืช ืืื ื ืืืืืงืื ืืืืคื ืฉืืื ืืื ืืืืขืืช, ืืคืื ืงืฆืืืช Hash ืืื ื ืืืืืืืช ืืืืงื ืืืื ืช ืฉื ืืืืขืืช ืขืืืจ ืงืืืฆื ืงืื ื ืฉื ืืคืชืืืช.
ืืฉืื ืืฆืืื ืฉืื ืชืืืจ ืืคืฆื ืืืืขืืช, ืืืชืื ืฉืืืื ืฆืืจื ืืขืฉืืช ืฉืืืืฉ ืืืืจ ืืืคืจืื ืขืฆืื.
ืฉืงืื ืืช ืืืจืืฉื ืืฉืืคื ื ืชืื ืื ืืื ืืฉืืืืืช ืงืคืงื ืืืืงืืืื ืืืืืืจืคืืื ืฉืื ืื. ืืฆืืจื ืื, ืงืคืงื ืืืืข ืขื ืืื ืฉืืจืช ืคืงืืื ืืฉื MirrorMaker, ืืืฉืืฉ ืืงืจืืืช ืืืืขืืช ืืืฉืืื ืืื ืืืขืืจืชื ืืืืจ.
MirrorMaker ืืืื ืืืืื ืืช ืืืคืชืืืช ืฉื ืื ืืฉื ืืืฉืืืคื ืืื ืืฉืืืจ ืขื ืกืืจ ืืืกื ืืื ืืืืขืืช ืืขืช ืฉืืคืื ืืื ืืฉืืืืืช, ืืืืืื ืฉืืกืคืจ ืืืืืฆืืช ืื ืืฉื ืื ืขืฉืื ืฉืื ืืืืืช ืืื ืืฉื ื ืืฉืืืืืช.
ืืกืืจืืืืืช ืืืืงื ืืืชืืืืช ืืืฉืืช ืื ื ืืืจืืช ืืืกืืช, ืฉืื ืืจืืจืช ืืืืื ืฉื hashing ืื round robin ืคืืขืืื ืืืื ืืจืื ืืชืจืืืฉืื. ืขื ืืืช, ืื ืืชื ืืงืืง ืืืืืืืช ืืืื ื ืืืงืืช ืื ืฉืืชื ืฆืจืื ืืืืฅ ืืื ื ืชืื ืื ืืืืขื ืื, ืื ืืืืงื ืืืืืฆืืช ืืื ืืฉืื ืฉืืชื ืฆืจืื ืืืืื ืืงืจืื.
ืืชืจืื ืืช ืืืืจืืืืช ืืืืืฆืืขืื ืฉื ืงืคืงื ื ืืืขืื ืืืขืืจืช ืืืง ืืืืืจืืืช ืฉื ืืืจืืงืจ ืืืกืืจืชื ืืืงืื. ืืืงืจื ืื, ืืชืงืืืช ืืืืื ืืืคืืฅ ืืกืจืื ืฉืขืืืืื ืืืืืช ืงืฉืืจืื ืืื ืืกืคืจ ืฆืจืื ืื ืืขืืืืื ืืืงืืื.
ืื ืืชืืืืื ืฉื JMS ืฆืจืืืื ืืืชืืืื ืขื ืืจืืฉืืช ืืืื. ืืขื ืืื ืืฆืืื ืฉืืื ืื ืื ืืฉืืืืช ืืืืขืืช ืงืฉืืจืืช ืืืืชื ืฆืจืื, ืืืืืฉื ืืืืฆืขืืช JMS Message Groups (ืืืจืืืฆืื ืฉื ืืกืืจืืืืืช ืืืืื ืืขืืืก ืืืืืง (SLB)), ืืืืื ืื ืืช ืืฉืืื ืืกืื ืืืืขืืช ืืงืฉืืจืืช. ืืืงืจื ืฉื JMS, ืืืจืืงืจ ืืืจืื ืืฉืืืืช ืงืืืฆืช ืืืืขืืช ืงืฉืืจืืช ืื ืืฆืจืื ืืื ืืชืื ืจืืื, ืืืขืืจืช ืืืขืืืช ืขื ืืงืืืฆื ืื ืืฆืจืื ื ืืคื.
ืืกืืื ืืคืืง
ืืืืงื ืืืืืฆืืช ืืื ืื ืืืืจ ืืืืื ืฉืืฉ ืืงืืช ืืืฉืืื ืืขืช โโืฉืืืืช ืืืืขืืช. ืืืื ื ืกืชืื ืขื ืฉืืืืช send() ืฉื ืืืืงืช ื-Producer ื-Java API:
Future < RecordMetadata > send(ProducerRecord < K, V > record);
Future < RecordMetadata > send(ProducerRecord < K, V > record, Callback callback);
ืืฉ ืืฆืืื ืืื ืฉืฉืชื ืืฉืืืืช ืืืืืจืืช Future, ืื ืฉืืขืื ืฉืคืขืืืช ืืฉืืืื ืื ืืืืฆืขืช ืืื. ืืชืืฆืื ืืื ืฉืืืืขื (ProducerRecord) ื ืืชืืช ืืืืืจ ืืฉืืืื ืขืืืจ ืื ืืืืฆื ืคืขืืื ืื ืฉืืืช ืืืจืืงืจ ืืืื ืจืงืข ืืกืคืจืืืช ืืืงืืืืช ืฉื ืงืคืงื. ืืืจืืช ืฉืื ืืืคื ืืช ืืืืจืื ืืืืืจืื ืืืคืืื, ืื ืืืืจ ืฉืืคืืืงืฆืื ืืกืจืช ื ืืกืืื ืืืืื ืืืื ืืืืขืืช ืื ืืชืืืื ืฉืื ืืืคืกืง.
ืืื ืชืืื, ืืฉ ืืจื ืืืคืื ืืช ืคืขืืืช ืืฉืืืื ืืืืื ื ืืืชืจ ืขื ืืฉืืื ืืืืฆืืขืื. ื ืืชื ืืืืืืจ ืืช ืืืื ืืืืืจ ืืื ื-0, ืืืฉืจืฉืืจ ืฉื ืืืืฉืื ืืฉืืื ืืืืืฅ ืืืืชืื ืขื ืืืฉืืืช ืืขืืจืช ืืืืืขื ืืืชืืื, ืืืืคื ืืื:
RecordMetadata metadata = producer.send(record).get();
ืขืื ืขื ืงืจืืืช ืืืืขืืช
ืืงืจืืืช ืืืืขืืช ืืฉ ืืืจืืืืืืช ื ืืกืคืืช ืฉืืฉ ืืฉืขืจ ืืืืืื. ืื ืืืื ื-JMS API, ืฉืืืื ืืืคืขืื ืืืืื ืืืืขืืช ืืชืืืื ืืืืืขื, ื ืฆืจืื ืืช ืงืคืงื ืจืง ืกืงืจืื. ืืืื ื ืกืชืื ืืงืจืื ืขื ืืฉืืื ืึดืฉืืึธื()ืืฉืืฉ ืืืืจื ืื:
ConsumerRecords < K, V > poll(long timeout);
ืขืจื ืืืืืจื ืฉื ืืฉืืื ืืื ืืื ื ืืืื ืืืืื ืืกืคืจ ืืืืืืงืืื ืจืงืืจื ืฆืจืื ื ืืืื ืืืืฆืืช ืคืืื ืฆืืืืืืช. ืจืงืืจื ืฆืจืื ื ืืื ืขืฆืื ืืืืืืงื ืืืืืง ืขืืืจ ืืื ืืคืชื-ืขืจื ืขื ืืื ื ืชืื ืื ืืฉืืืืื, ืืืื ืืืืืฆื ืฉืืื ื ืืื ื ืืืจ.
ืืคื ืฉื ืืื ืืคืจืง 2, ืขืืื ื ืืืืืจ ืื ืงืืจื ืืืืืขืืช ืืืืจ ืฉืขืืืื ืืืฆืืื ืื ืฉืื ืืืฆืืื, ืืืฉื, ืื ืืืงืื ืืื ื ืืกืืื ืืขืื ืืช ืืืืืขื ืื ืื ืืื ืืืืืืช. ื-JMS, ืื ืืืคื ืืืืฆืขืืช ืืฆื ืืืฉืืจ. ืืืชืืื ืืืืง ืืช ืืืืืขื ืฉืขืืืื ืืืฆืืื, ืื ืืืกืืจ ืืืืฉ ืืช ืืืืืขื ืืืืืืืช ืื ืืืืืืคืช (ืืื ืื ืฉื ืขืฉื ืฉืืืืฉ ืืขืกืงืืืช).
ืงืคืงื ืขืืื ืืืจืช ืืืืจื. ืืืืขืืช ืืื ื ื ืืืงืืช ืืืชืืื ืืืืจ ืืืืื, ืืื ืฉืงืืจื ืืืฉื ืืื ืืืืจืืืช ืงืื ืืืืื ืขืฆืื.
ืืคื ืฉืืืจื ื, ืงืืืฆืช ืืฆืจืื ืื ืืฉืืืืช ืืงืืืื ืืืืื. ืืืงืื ืืืืื ืืืฉืืื ืืงืืืื ืื ืืชืืื ืืืืืขื ืืืื ืฉืชืื ืคืง ืืชืืืื ืึดืฉืืึธื(). ื ืงืืืช ืืืื ืฉืื ืืงืืืื ืืื ืืื ืืื ืืงืืืขืช ืืงืจืืื.
ืื ื ืืืืจ ืืืืื ืืงืจืืื ืฉื ืืื ืงืืื ืืื, ืขืืืื ืืืืืขืืช ืืืจืื ืืฉืืืฉื ืฉืืืื:
- ืืืืจ ืืืืขื ืืงืจืืื.
- ืขืื ืืช ืืืืืขื.
- ืืฉืจ ืืช ืืืืืขื.
ืฆืจืื ืงืคืงื ืืืืข ืขื ืืคืฉืจืืช ืงืื ืคืืืืจืฆืื enable.auto.commit. ืืืื ืืืืจืช ืืจืืจืช ืืืื ืืฉืืืืฉ ืชืืืฃ, ืืคื ืฉืืงืืื ืืืืืจืืช ืืืืืืืช ืืช ืืืืื "ืืืืืืื".
ืืคื ื ืงืคืงื 0.10, ืืงืื ืืืฉืชืืฉ ืืืคืฉืจืืช ืื ืืฉืื ืืช ืืงืืืื ืฉื ืืืืืขื ืืืืจืื ื ืฉื ืงืจืื ืืฉืืื ืืืื ืึดืฉืืึธื() ืืืืจ ืขืืืื. ืืฉืืขืืช ืืืืจ ืืื ืฉืื ืืืืขืืช ืฉืืืจ ืืืืืจื ื ืืชื ืืช ืืขืืืื ืืืืฉ ืื ืืืงืื ืืืจ ืขืืื ืืืชื ืื ืืืฉืืื ืืืืคื ืืืชื ืฆืคืื ืืคื ื ืฉืืชืงืฉืจ ืึดืฉืืึธื(). ืืืืืื ืฉืืืชืืื ืื ืฉืืืจ ืฉืื ืืืืขื ืืืื ืืื ืคืขืืื ืืืืขื ื ืงืจืื, ืืฆืจืื ืืื ืฉืืฉืืืจ ืืช ืืืืืขื ืื ืืืืข ืฉืืฉืื ืจืข ืงืจื. ืืชื ืืืืช ืื ืืืืชื ืคืกืืืื-ืขืกืงืืช. ืืงืืืื ืืืฆืข ืจืง ืื ืืืืืขื ืขืืืื ืืืฆืืื, ืื ืื ืืืงืื ืืืื, ืืืชืืื ืืฉืื ืฉืื ืืช ืืืชื ืืืืขื ืืืงืื ืืืจ. ืืชื ืืืืช ืื ืืืืชื ืขืงืืืช ืขื ืขืจืืืช ืืกืืจืช ืืืืืขืืช "ืืคืืืช ืคืขื ืืืช".
ืืงืคืงื 0.10, ืงืื ืืืงืื ืฉืื ื ืื ืฉื-commit ืืืคืขื ืืขืช ืืขืช ืขื ืืื ืกืคืจืืืช ืืืงืื, ืืคื ืฉืืืืืจื auto.commit.interval.ms. ืืชื ืืืืช ืื ื ืืฆืืช ืืืคืฉืื ืืื ืืืฆืืื JMS AUTO_ACKNOWLEDGE ื-DUPS_OK_ACKNOWLEDGE. ืืขืช ืฉืืืืฉ ื-autocommit, ืืืืขืืช ืืืืืืช ืืืชืืฆืข ืืื ืงืฉืจ ืืฉืืื ืื ืื ืขืืืื ืืคืืขื - ืื ืืืื ืืงืจืืช ืืืงืจื ืฉื ืฆืจืื ืืืื. ืื ืฆืจืื ืืืื, ืืืืขืืช ืืชืงืืื ืขื ืืื ืืฆืจืื ืืื, ืืื ืืืืืงืื ืืืืืื, ืื ืฉืขืืื ืืืจืื ืืืืืขื ืฉืืืืืฆื. ืืืงืจื ืืื, ืงืคืงื ืื ืืืื ืืช ืืืืืขืืช, ืงืื ืืงืจืืื ืคืฉืื ืื ืขืืื ืืืชื.
ืืืฆื ืื ืืฉ ืืืชื ืืืืื ืืื ืืืจืกื 0.9: ื ืืชื ืืขืื ืืืืขืืช, ืื ืื ืืื ื ืืฉื, ืืืชืื ืฉืืงืืืื ืื ืืชืืฆืข, ืื ืฉืขืืื ืืืจืื ืืืกืืจื ืืืืืช ืืคืืื. ืืื ืฉืชืืื ืืืชืจ ืืืืขืืช ืืขืช ืืืฆืืข ืึดืฉืืึธื(), ืืื ืฉืืืขืื ืืื ืืืชืจ ืืืืื.
ืืคื ืฉื ืืื ื"ืงืจืืืช ืืืืขืืช ืืชืื ืชืืจ" ืืขืืื 21, ืืื ืืืจ ืืื ืืฉืืื ืื ืคืขืื ืฉื ืืืืขื ืืืขืจืืช ืืืืขืืช ืืืฉืจ ืืฆืื ืืฉื ื ืืงืืื ืืืฉืืื.
ืืงืคืงื ืืฉื ื ืฉืชื ืืจืืื ืืืฆืข (ืืืฆืข) ืงืืืื (ืืืกื): ืืืืคื ืืืืืืื ืืืื ื. ืืฉื ื ืืืงืจืื, ื ืืชื ืืขืื ืืืืขืืช ืืกืคืจ ืคืขืืื ืื ืืืืืขื ืขืืืื ืื ื ืืฉืื ืืคื ื ืืืืฆืืข. ืืชื ืืืื ืื ืืืืืจ ืื ืืขืื ืืช ืืืืืขื ืืืื ืื ื-commit ืืชืจืืฉ ืืจืงืข ืืืงืื ืฉืื ืืืฉืื ืืคื ื ืฉื ืืชื ืืื ืืขืื ืืืชื (ืืืื ืืงืคืงื 0.9 ืืืขืื).
ืืชื ืืืื ืืฉืืื ืืชืืืื ืืืชืืืืืืช ืืงืืืื ืืืื ื ื-Kafka ืืฆืจืื API ืขื ืืื ืืืืจืช ืืคืจืืืจ enable.auto.commit ื-false ืืงืจืืื ืืคืืจืฉืช ืืืืช ืืืฉืืืืช ืืืืืช:
void commitSync();
void commitAsync();
ืื ืืจืฆืื ื ืืขืื ืืช ืืืืืขื "ืืคืืืช ืคืขื ืืืช", ืขืืื ืืืฆืข ืืช ืืงืืืื ืืืืคื ืืื ื commitSync()ืขื ืืื ืืืฆืืข ืคืงืืื ืื ืืื ืืืืจ ืขืืืื ืืืืืขืืช.
ืฉืืืืช ืืื ืืื ื ืืืคืฉืจืืช ืืืฉืืจ ืืืืืขืืช ืืคื ื ืขืืืืื, ืื ืื ืืื ื ืขืืฉืืช ืืืจ ืืื ืืืื ืขืืืืืื ืคืืื ืฆืืืืืื ืืขืืืื ืชืื ืืื ืืจืื ืฉื ืขืกืงื. ืืื ืขืกืงืืืช ืืงืคืงื. ืืืงืื ืืื ืืช ืืืืืืช ืืืฆืข ืืช ืืคืขืืืืช ืืืืืช:
- ืืืืจ ืืืืืืืืช ืืืืืจ ืฉื ืืืืขื ืืืืืคืช. ืืฆืจืื ืื ืขืฆืื ืืืืืื ืืืคื ืืืจืืืื ืื ืืืขืื ืืืืขื ืื ืืขืืืชืืื ืืืคืกืงืืช ืืงืฆื ืืืืืจื, ืืืืืื ืฉืื ืืื ื ืืืืืื ืืกืืื ืขื ืืืชืืื ืฉืืืกืืจ ืืืืฉ ืืืืขืืช.
- ืฉืื ืืืืขืืช ืืืกืคืจ ื ืืฉืืื ืืคืขืืื ืืืืืืช ืืืช. ืืคื ืฉื ืจืื ืืงืจืื, ืืฉืืืื ืขื ื ืืฉืืื ืืืืืฆืืช ืฉืื ืื ืืืืื ืืืืืช ืืืืื ืืช ืฉืื ืืช ืืืฉืืื ืงืคืงื ืฉืืื ื ืืชืืืชืืช ืขืกืงืืืช ืืขืช ืฉืืืืชื. ืืืื ืืชืืืช ืฉืืจืืช ืืื, ื ืขืฉืชื ืขืืืื ืืกืืืืช ืืื ืืืคืฉืจ ืืืช ืขื ื-KIP-98.
- ืฉืืื ืงืจืืืช ืืืืขื ืืืช ืื ืืฉื ืืื ืืฉืืืืช ืืืืขื ืืืจืช ืื ืืฉื ืืืจ. ืฉืื, ืืืจืืืืงืืืจื ืฉื ืงืคืงื ืชืืืื ืืืืื ืืช ืขืฆืืืืืช ืจืืืช ืืคืืขืืืช ืืืืืืืืก ืืื ืืื ื ืขืฉื ื ืืกืืื ืืืกืชืืจ ืืืช. ืืืืืื, ืืื ืจืืืื API ืฉืืืคืฉืจื ืื ืืงืฉืจ ืฆืจืื ะธ ืืคืืง ืืขืกืงื. ื-JMS, ืื ืืกืืคืง ืขื ืืื ืืืืืืืงื ืืึนืฉืึธืืืื ื ืืฆืจืื ืืคืืงื ืืืืขืืช ะธ MessageConsumers.
ืื ืืื ื ื ืืืืืื ืืืกืชืื ืขื ืขืกืงืืืช, ืืืฆื ื ืืื ืืกืคืง ืกืื ืืืงื ืงืจืืื ืืืชืจ ืืืื ืฉืืกืคืงืืช ืืขืจืืืช ืืืืขืืช ืืกืืจืชืืืช?
ืื ืืฉื ื ืืคืฉืจืืช ืฉืืงืืืื ืฉื ืืฆืจืื ืขืืื ืืืืื ืืคื ื ืขืืืื ืืืืืขื, ืืื ืืืฉื ืืขืช ืงืจืืกืช ืฆืจืื, ืืื ืืฆืจืื ืืื ืืจื ืืืขืช ืื ืงืืืฆืช ืืฆืจืื ืื ืฉืื ืคืกืคืกื ืืช ืืืืืขื ืืืฉืจ ืืื ืืืงืฆืืช ืืืืฆื. ืื ืืกืืจืืืื ืืืช ืืื ืืืืืืจ ืืช ืืืืกื ืืืืงืื ืืงืืื. ืืืฉืง API ืืฆืจืื ืฉื ืงืคืงื ืืกืคืง ืืช ืืฉืืืืช ืืืืืช ืืื:
void seek(TopicPartition partition, long offset);
void seekToBeginning(Collection < TopicPartition > partitions);
ืฉืืื ืึฐืึทืคึผึตืฉื() ื ืืชื ืืืฉืชืืฉ ืืฉืืื
offsetsForTimes(Map ืืืชืืืช ืืื ืืืืคืืฉ) ืืืจืืฅ ืืืืืจ ืืืฆื ืื ืงืืื ืืกืืืืช ืืขืืจ.
ืืืืคื ืืจืืื, ืฉืืืืฉ ืืืืฉื ืื ืืืืจ ืฉืกืืืจ ืืืื ืฉืืืง ืืืืืืขืืช ืฉืขืืืื ืืขืืจ ืืืงืจืื ืืืขืืืื ืฉืื. ืืื ืืืืื ืข ืืื, ืื ื ืืืืืื ืืืฉืชืืฉ ืืงืจืืื ืืืืคืืื ืืืช, ืืืชืืืจ ืืคืจืง 4, ืืื ืืขืงืื ืืืจ ืืืืขืืช ืฉื ืฆืคื ืืขืืจ ืืืื ืืข ืืคืืืืืืช.
ืืืืืคืื, ื ืืชื ืืฉืืืจ ืขื ืงืื ืืฆืจืื ืฉืื ืคืฉืื, ืื ืขืื ืืืืื ืื ืฉืืคืื ืฉื ืืืืขืืช ืืงืืืืื. ืืืฉืจ ืื ื ืืกืชืืืื ืขื ืืงืจื ืฉืืืืฉ ืฉืขืืืจื ืืฉืชืืฉืื ืืืจื ืืื ืืงืคืงื, ืืืื ืืืคืื ืืืืจืืขื ืืืื, ืืืืื, ืืขืงื ืืืจ ืงืืืงืื ืืื', ืื ื ืืืื ืื ืื ืืืืืื ืฉื ืืืืขืืช ืืืืืืช ืื ืกืืืจ ืฉืชืืื ืืฉืคืขื ืืฉืืขืืชืืช ืขื ืืืคืืืงืฆืืืช ืืกืืืืืช. ืืืงืจืื ืืืื, ืขืจืื ืืจืืจืช ืืืืื ืืงืืืืื ืืืืืืื. ืืฆื ืฉื ื, ืื ืืืงืฉื ืฉืื ืฆืจืืื ืืฉืืื ืชืฉืืืืื, ืขืืื ืืืคื ืืืืืจืืช ืืื ืืืืขื ืื ืคืจื. ืืื ืชืืื ืืืงืฉืจ.
ืชืฆืคืืืช ืืืฉืืืช ืืจืืืช ืฉืืื ืฉืขืืฆืืช ืืืืืขืืช ืขืืื, ืืขืจื ืฉื ืื ืืืืขื ืืืืืช ืืืจื. ืืืืขืืช ืืืืืืช ื ืืืืช ืืืืืช ืืขืื ืขืจื ืืฉืื ืืืฆืืืช ืืฆืืจื ืืฆืืืจืช.
ืืืื ืืช ืืืืื
ืืืืฉื ืฉื ืงืคืงื ืืืืื ืืช ืืืืื ืฉืื ื ืืืื ืืืืืฉื ืฉื ActiveMQ. ืงืคืงื ืชืืื ื ืกืืื ืืฉืืืืืช ืืืจืืืื ืฉืืื ืื ืืืคืขื ืืืจืืงืจ ืืงืืืื ืืืคืืฆืื ืืืืขืืช ืื-ืืื ืืช.
ืืฉืืื ืงืคืงื ืืืจืื ืืืืคืขื ืืชืืื ืืจืืืื ืืคืืขืืื ืขื ืฉืจืชืื ืฉืื ืื. ืงืคืงื ืชืืื ื ืืคืขืื ืขื ืืืืจื ืขืฆืืืืช ืจืืืื, ืืืฉืจ ืืื ืฆืืืช ืืฉ ืืืกืื ืืืขืืื ืืฉืื. ืืฉืืืืฉ ืืืืกืื ืืืืืจ ืืจืฉืช (SAN) ืืื ื ืืืืืฅ ืืืืืื ืฉืืกืคืจ ืฆืืชื ืืืฉืื ืืืืืื ืืืชืืจืืช ืขื ืืื.ะซืืจืืืื ืืืกืื ืืืฆืืจืช ืงืื ืคืืืงืืื.
ืงืคืงื ืืื ืชืืื ืคืืขื ืืขืจืืช. ืืฉืชืืฉื ืงืคืงื ืืืืืื ืจืืื ืืฃ ืคืขื ืื ืืืืื ืืช ืืืฉืืืืืช ืฉืืื ืืืชืืื ื ืชืืื ืืชืขืืื ืช ืขื ืืคืขืื ืืืืฉ ืืจืฆืฃ. ืื ืืืฉื ืขื ืืื ืืืืืช ืชืืืืืช ืืืจืกื ืืงืืืืช ืขืืืจ ืืืืขืืช ืืืื ืืจืืงืฆืืืช ืืื ืืชืืืืื.
ืืชืืืืื ืืืืืืจืื ืืืฉืืื ืฉืจืชืื
ืืืงืจื ืืืกืืกื, ื ืืฆืจ ื ืืฉื ืืืฉืืื ืงืคืงื ืขื ืืืืคืืื ืื ืืืืื:
- ืืกืคืจ ืืืืืฆืืช. ืืคื ืฉื ืืื ืงืืื ืืื, ืืขืจื ืืืืืืง ืืฉืืืืฉ ืืื ืชืืื ืืจืื ืืจืฆืืื ืฉื ืงืจืืื ืืงืืืื.
- ืืืจื ืืฉืืคืื (ืืืจื) ืงืืืข ืืื ืืืคืขื ืืชืืื ืืืฉืืื ืฆืจืืืื ืืืืื ืืืื ืื ืขืืืจ ืืืืฆื ืื.
ืืืืฆืขืืช ZooKeepers ืืชืืืื, ืงืคืงื ืื ืกื ืืืคืืฅ ืืืืฆืืช ืืืฉืืช ืืฆืืจื ืืืื ืช ืืื ืืืชืืืืื ืืืฉืืื. ืื ื ืขืฉื ืขื ืืื ืืืคืข ืืืื ืฉืืชืคืงื ืืืงืจ.
ืืืื ืจืืฆื ืขืืืจ ืื ืืืืฆืช ื ืืฉื ืืงืจ ืืืงืฆืืช ืชืคืงืืืื ืืืชืืื ืึทื ืึดืื (ืื ืืื, ืืืกืืจ, ืื ืื) ื ืขืืงืืื (ืืกืืืื, ืขืืืื, ืืคืืคืื). ืืืชืืื, ืืืฉืืฉ ืืืืืื ืืืืฆื ืื, ืืืจืื ืขื ืงืืืช ืื ืืืืืขืืช ืื ืฉืืืืช ืืืื ืขื ืืื ืืืฆืจื ืื ืืืคืฆืช ืืืืืขืืช ืืฆืจืื ืื. ืืืฉืจ ืืืืขืืช ื ืฉืืืืช ืืืืืฆืช ื ืืฉื, ืื ืืฉืืืคืืืช ืืื ืฆืืชื ืืืชืืื ืืคืืขืืื ืืขืืงืืื ืขืืืจ ืืืชื ืืืืฆื. ืื ืฆืืืช ืืืืื ืืืื ืื ืขืืืจ ืืืืฆื ื ืงืจื ืึถืขืชึตืง ืึฐืืึผืึธืง. ืืจืืงืจ ืืืื ืืฉืืฉ ืืืืืื ืขืืืจ ืืืืฆืืช ืืกืืืืืช ืืืขืืงื ืขืืืจ ืืืจืืช.
ืขืืงื ืืืืื ืืช ืื ืืืืืขืืช ืฉืืืื ืืื ืืื ื ืงืจื ืืขืชืง ืืกืื ืืจื (ืขืืชืง ืฉื ืืฆื ืืืฆื ืืกืื ืืจื, ืืขืชืง ืืกืื ืืจื). ืื ืืชืืื ืฉืืชืคืงื ืืืืืื ืขืืืจ ืืืืฆื ืืืจื, ืื ืืจืืงืจ ืืขืืืื ืื ืืกืื ืืจื ืขืืืจ ืืืชื ืืืืฆื ืืืื ืืงืืช ืขื ืขืฆืื ืืช ืชืคืงืื ืืื ืืื. ืื ืขืืฆืื ืืจ ืงืืืื ืืืคืืื.
ืืืง ืืชืฆืืจืช ืืืฆืจื ืืื ืืคืจืืืจ acks, ืฉืงืืืข ืืื ืืขืชืงืื ืืืืืื ืืืฉืจ (ืืืฉืจ) ืงืืื ืฉื ืืืืขื ืืคื ื ืฉืจืฉืืจ ืืืืฉืื ืืืฉืื ืืฉืืื: 0, 1 ืื ืืืื. ืื ืืืืืจ ื ืืช ืื, ืืืืจ ืืื ืืืฉืจ ืืชืงืืืช ืืืืขื, ืืื ืืื ืืฉืื ืืืฉืืจ ืืืืจื ืืืคืืง ืืจืืข ืฉืืื ืืงืื ืืืฉืืจืื (ืืืฉืืจืื) ืขื ืืจืฉืืื ืืืกืคืจ ืจืืืื (ืืืื ืขืฆืื) ืืืืืืจืื ืขื ืืื ืืืืจืช ืื ืืฉื min.insync.replicas (ืืจืืจืช ืืืื 1). ืื ืื ื ืืชื ืืฉืืคื ืืช ืืืืืขื ืืืฆืืื, ืืืคืืง ืืืจืืง ืืจืื ืืืฉืื (Not EnoughReplicas ืื NotEnoughReplicasAfterAppend).
ืชืฆืืจื ืืืคืืกืืช ืืืฆืจืช ื ืืฉื ืขื ืืงืื ืฉืืคืื ืฉื 3 (ืื ืืื ืืื, 1 ืขืืงืืื ืืื ืืืืฆื) ืืืคืจืืืจ min.insync.replicas ืืืืืจ ื-2. ืืืงืจื ืื, ืืืฉืืื ืืืคืฉืจ ืืืื ืืืืจืืงืจืื ืืื ืืืื ืืช ืืืืฆืช ืื ืืฉื ืืจืืช ืืืื ืืืฉืคืืข ืขื ืืืฉืืื ืืืงืื.
ืื ืืืืืจ ืืืชื ื ืืคืฉืจื ืืืืืจืช ืืืืื ืืื ืืืฆืืขืื ืืืืื ืืช. ืฉืืคืื ืืชืจืืฉ ืขื ืืฉืืื ืืื ืืืชื ื ื ืืกืฃ ืืืืฉืืจืื (ืืืฉืืจืื) ืืืขืืงืืื. ืืื ื, ืืืืืื ืฉืืื ืคืืขื ืืืงืืื, ืืฉืืคืื ืืฉืืืฉื ืฆืืชืื ืืคืืืช ืืฉ ืืืฆืืขืื ืืืื ืืฉื ืืื (ืืืชืขืื ืืืืืืื ืืฉืืืืฉ ืืจืืื ืืคืก ืฉื ืืจืฉืช).
ืืืืฆืขืืช ืขืจืืช ืฉืืคืื ืื, ืงืคืงื ื ืื ืข ืืืืืื ืืืฆืืจื ืืืชืื ืคืืืืช ืื ืืืืขื ืืืืกืง ืขื ืืคืขืืื ืกืื ืืจืื(). ืื ืืืืขื ืฉื ืฉืืื ืขื ืืื ืืืคืืง ืชืืืชื ืืืืื ืืืืืฆืืช, ืื ืืคื ืฉื ืืื ืืคืจืง 2, ืืชืืื ืืงืืืฅ ืืชืืฆืขืช ืืชืืืื ืืืืืจ ืฉื ืืขืจืืช ืืืคืขืื. ืื ืืืืขื ืื ืืฉืืืคืืช ืืืืคืข ืืืจ ืฉื ืงืคืงื ืื ืืฆืืช ืืืืืจืื ืฉืื, ืืืืื ืืื ืืื ืืื ื ืืืืจ ืฉืืืกืจ ืขืฆืื ืืื - ื ืืชื ืืืฉืชืื ืขืืื ืขื ืืื ืืขืชืง ืืกืื ืืจื.
ืกืืจืื ืืืฆืข ืืช ืืคืขืืื ืกืื ืืจืื() ืคืืจืืฉื ืฉืงืคืงื ืืืื ืืงืื ืืืืขืืช ืืืจ ืืื ืฉืืื ืืืื ืืืชืื ืืืชื ืืืืืจืื. ืืขืืืช ืืืช, ืืื ืฉืชืืื ืืืืื ืข ืืฉืืืคืช ืืืืจืื ืืืืกืง, ืื ืืืื. ืืกืืื ืื, ืืื ืื ื ืืืจ ืฉืืืจืืงืจืื ืฉื ืงืคืงื ืืืงืฆืื ืืืืจืื ืฉื 64 GB ืื ืืืชืจ. ืฉืืืืฉ ืืืืืจืื ืื ืืืืจ ืฉืืืคืข ืืืื ืฉื ืงืคืงื ืืืื ืืจืืฅ ืืงืืืช ืืืืืจืืืืช ืืืืจืืช ืฉื ืืืคื ืคืขืืื ืืืฉืจ ืืชืืื ืืืืขืืช ืืกืืจืชื.
ื ืืชื ืื ืืืืืืจ ืืช ืงืคืงื ืืืืื ืืช ืืคืขืืื ืกืื ืืจืื() ืืฉืืื ืืืืขืืช ืืืืืืช. ืืืืืื ืฉืืื ืืงืคืงื ืืืืื ืืืืื, ืืื ืืืขืฉื ืขืืื ืื ืืื ืขืืืจ ืืงืจื ืฉืืืืฉ ืจืืื ืืืืืื ืืื ืฉืืืืฉื ืืืฉืชืืฉืื ืฉืืืจืฉืื ืขืจืืืืืช ืืืงืืช ืืืื. ืืืง ื ืืืจ ืืืืืฆืืขืื ืืืืืจืื ืฉื ืงืคืงื ื ืืืข ืืืืืืขืืช ืื ืฉืืืืช ืืืชืืื ืืื ืืช ืืฉืืืืืขืืช ืืืื ื ืงืจืืืช ืืืืจืืงืจ ืืืืืงืื ืขืืงืืื ืืืืฆืขืืช
ืืืฆืืขืื ืืืืื ืืจืื ืืืชืจ ืืคืฉืจืืื ืืืฉืืื ืงืคืงื ืืืฉืจ ืขื ืืชืืื ืงืคืงื ืืืื, ืืืืืื ืฉืืืืฆืืช ื ืืฉื ืืืืืืช ืืืชืจืื ืขื ืคื ื ืืืื ืืช ื ืคืจืืืช ืจืืืช.
ืชืืฆืืืช ืฉื
ืืคืจืง ืื, ืืื ื ืืืฆื ืืจืืืืงืืืจืช ืงืคืงื ืืืืืื ืช ืืืืฉ ืืช ืืขืจืืช ืืืืกืื ืืื ืืงืืืืช ืืืจืืงืจืื ืืื ืืกืคืง ืฆืื ืืจ ืืืืขืืช ืืืง ืืืคืืื, ืขื ืชืคืืงื ืืืืื ืคื ืืื ืืื ืฉื ืืชืืื ืืกืจืื ืจืืื. ืื ื ืืคืื ืงืฆืืื ืืืืช ืฉืื ืืื ืืฉืชืืฉืช ืืื ืืืฉืื ืืืช, ืืืื ื ืืงืฆืจื ืืช ืืืจืืืืงืืืจื ืฉื ืืืฉืืืื ืืืกืคืงืื ืคืื ืงืฆืืื ืืืืช ืื. ืืคืจืง ืืื, ื ืืื ืืขืืืช ื ืคืืฆืืช ืฉืืืฉืืืื ืืืืกืกื ืืืืขืืช ืฆืจืืืื ืืคืชืืจ ืื ืืื ืืืกืืจืืืืืช ืืืชืืืืืืช ืืืชื. ื ืกืืื ืืช ืืคืจืง ืืืชืืจ ืืืฆื ืืืืจ ืขื ืืื ืืืืืืืช ืืขืืจืช ืืืืขืืช ืืืืคื ืืืื ืืื ืฉืชืืื ืืืขืจืื ืืช ืืชืืืชื ืืืงืจื ืืฉืืืืฉ ืฉืื.
ืืืืง ืืืชืืจืื ืืงืืื:
ืืชืจืืื ื ืขืฉื:
ืืืืฉื ...
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืื ื ืขืฉื ืฉืืืืฉ ืืงืคืงื ืืืจืืื ืฉืื?
-
ืื
-
ืื
-
ืืื ืืฉืืืืฉ ืืขืืจ, ืขืืฉืื ืื
-
ืื ืื ื ืืชืื ื ืื ืืืฉืชืืฉ
38 ืืฉืชืืฉืื ืืฆืืืขื. 8 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com