ืžืขืจื›ืช ืžื—ืฉื•ื‘ ืžื‘ื•ื–ืจืช Apache Storm 2.0 ื–ืžื™ื ื”

ืจืื” ืืช ื”ืื•ืจ ืฉื—ืจื•ืจ ืžืฉืžืขื•ืชื™ ืฉืœ ืžืขืจื›ืช ืขื™ื‘ื•ื“ ืื™ืจื•ืขื™ื ืžื‘ื•ื–ืจืช Apache Storm 2.0, ื‘ื•ืœื˜ ื‘ืžืขื‘ืจ ืฉืœื• ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ื—ื“ืฉื” ื”ืžื™ื•ืฉืžืช ื‘-Java, ื‘ืžืงื•ื ืฉืคืช Clojure ืฉื”ื™ื™ืชื” ื‘ืขื‘ืจ.

ื”ืคืจื•ื™ืงื˜ ืžืืคืฉืจ ืœืืจื’ืŸ ืขื™ื‘ื•ื“ ืžื•ื‘ื˜ื— ืฉืœ ืื™ืจื•ืขื™ื ืฉื•ื ื™ื ื‘ื–ืžืŸ ืืžืช. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Storm ืœื ื™ืชื•ื— ื–ืจืžื™ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช, ื”ืคืขืœืช ืžืฉื™ืžื•ืช ืœืžื™ื“ืช ืžื›ื•ื ื”, ืืจื’ื•ืŸ ืžื—ืฉื•ื‘ ืจืฆื™ืฃ, ื”ื˜ืžืขืช RPC, ETL ื•ื›ื•'. ื”ืžืขืจื›ืช ืชื•ืžื›ืช ื‘ืืฉื›ื•ืœื•ืช, ื™ืฆื™ืจืช ืชืฆื•ืจื•ืช ืกื‘ื™ืœื•ืช ืœืชืงืœื•ืช, ืžืฆื‘ ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื ืžื•ื‘ื˜ื— ื•ื‘ืขืœืช ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ื”ืžืกืคื™ืงื™ื ืœืขื™ื‘ื•ื“ ื™ื•ืชืจ ืžืžื™ืœื™ื•ืŸ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื” ื‘ืฆื•ืžืช ืืฉื›ื•ืœ ืื—ื“.

ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช ืฉื•ื ื•ืช ืœืขื™ื‘ื•ื“ ืชื•ืจื™ื ื•ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžืกื“ ื ืชื•ื ื™ื ื ืชืžื›ืช. ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”-Storm ื›ื•ืœืœืช ืงื‘ืœื” ื•ืขื™ื‘ื•ื“ ืฉืœ ื–ืจืžื™ ื ืชื•ื ื™ื ืœื ืžื•ื‘ื ื™ื ื•ืžืชืขื“ื›ื ื™ื ื›ืœ ื”ื–ืžืŸ ื‘ืืžืฆืขื•ืช ืžืขื‘ื“ื™ื ืžื•ืจื›ื‘ื™ื ืฉืจื™ืจื•ืชื™ื™ื ืขื ื™ื›ื•ืœืช ื—ืœื•ืงื” ื‘ื™ืŸ ืฉืœื‘ื™ ื—ื™ืฉื•ื‘ื™ื ืฉื•ื ื™ื. ื”ืคืจื•ื™ืงื˜ ื”ื•ืขื‘ืจ ืœืงื”ื™ืœืช ืืคืืฆ'ื™ ืœืื—ืจ ืฉื˜ื•ื•ื™ื˜ืจ ืจื›ืฉื” ืืช BackType, ื”ื—ื‘ืจื” ืฉืคื™ืชื—ื” ืืช ื”ืžืกื’ืจืช ื‘ืžืงื•ืจ. ื‘ืคื•ืขืœ, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-Storm ื‘-BackType ื›ื“ื™ ืœื ืชื— ืืช ื”ืฉืชืงืคื•ืช ื”ืื™ืจื•ืขื™ื ื‘ืžื™ืงืจื•ื‘ืœื•ื’ื™ื, ืขืœ ื™ื“ื™ ื”ืฉื•ื•ืื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ืฉืœ ืฆื™ื•ืฆื™ื ื—ื“ืฉื™ื ื•ื”ืงื™ืฉื•ืจื™ื ืฉื‘ื”ื ื ืขืฉื” ืฉื™ืžื•ืฉ (ืœื“ื•ื’ืžื”, ื”ื•ืขืจืš ื›ื™ืฆื“ ืงื™ืฉื•ืจื™ื ื—ื™ืฆื•ื ื™ื™ื ืื• ื”ื•ื“ืขื•ืช ืฉืคื•ืจืกืžื• ื‘ื˜ื•ื•ื™ื˜ืจ ืฉื•ื“ืจื• ืžื—ื“ืฉ ืขืœ ื™ื“ื™ ืžืฉืชืชืคื™ื ืื—ืจื™ื ).

ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ Storm ืžื•ืฉื•ื•ื” ืœืคืœื˜ืคื•ืจืžืช Hadoop, ื›ืืฉืจ ื”ื”ื‘ื“ืœ ื”ืขื™ืงืจื™ ื”ื•ื ืฉื”ื ืชื•ื ื™ื ืื™ื ื ืžืื•ื—ืกื ื™ื ื‘ืžื—ืกืŸ, ืืœื ื ืงืœื˜ื™ื ื—ื™ืฆื•ื ื™ืช ื•ืžืขื•ื‘ื“ื™ื ื‘ื–ืžืŸ ืืžืช. ืœ-Storm ืื™ืŸ ืฉื›ื‘ืช ืื—ืกื•ืŸ ืžื•ื‘ื ื™ืช ื•ื”ืฉืื™ืœืชื” ื”ืื ืœื™ื˜ื™ืช ืžืชื—ื™ืœื” ืœื”ื™ื•ืช ืžื™ื•ืฉืžืช ืขืœ ื ืชื•ื ื™ื ื ื›ื ืกื™ื ืขื“ ืฉื”ื™ื ืžื‘ื•ื˜ืœืช (ื‘ืขื•ื“ ืฉ-Hadoop ืžืฉืชืžืฉืช ื‘ืขื‘ื•ื“ื•ืช MapReduce ื‘ื–ืžืŸ ืกื•ืคื™, ืกื˜ื•ืจื ืžืฉืชืžืฉืช ื‘ืจืขื™ื•ืŸ ืฉืœ ื”ืคืขืœืช "ื˜ื•ืคื•ืœื•ื’ื™ื•ืช" ื‘ืื•ืคืŸ ืจืฆื™ืฃ). ื”ื‘ื™ืฆื•ืข ืฉืœ ืžื˜ืคืœื™ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื•ืคืฅ ืขืœ ืคื ื™ ืžืกืคืจ ืฉืจืชื™ื - Storm ืžืงื‘ื™ืœ ืื•ื˜ื•ืžื˜ื™ืช ืขื‘ื•ื“ื” ืขื ืฉืจืฉื•ืจื™ื ื‘ืฆืžืชื™ ืืฉื›ื•ืœื•ืช ืฉื•ื ื™ื.

ื”ืžืขืจื›ืช ื ื›ืชื‘ื” ื‘ืžืงื•ืจ ื‘- Clojure ื•ืคื•ืขืœืช ื‘ืชื•ืš ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช JVM. ืงืจืŸ Apache ื”ืฉื™ืงื” ื™ื•ื–ืžื” ืœื”ืขื‘ืจืช Storm ืœื’ืจืขื™ืŸ ื—ื“ืฉ ืฉื ื›ืชื‘ ื‘-Java, ืฉืชื•ืฆืื•ืชื™ื• ืžื•ืฆืขื•ืช ื‘ืžื”ื“ื•ืจื” ืฉืœ Apache Storm 2.0. ื›ืœ ื”ืจื›ื™ื‘ื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœ ื”ืคืœื˜ืคื•ืจืžื” ื ื›ืชื‘ื™ื ืžื—ื“ืฉ ื‘-Java. ื”ืชืžื™ื›ื” ื‘ืžื˜ืคืœื™ ื›ืชื™ื‘ื” ื‘- Clojure ื ืฉืžืจื”, ืืš ืžื•ืฆืขืช ื›ืขืช ื‘ืฆื•ืจื” ืฉืœ ื›ืจื™ื›ื•ืช. Storm 2.0.0 ื“ื•ืจืฉ Java 8. ืžื•ื“ืœ ื”ืขื™ื‘ื•ื“ ืžืจื•ื‘ื™ ื”ื”ืœื™ื›ื™ื ืขื•ืฆื‘ ืžื—ื“ืฉ ืœื—ืœื•ื˜ื™ืŸ, ื”ืžืืคืฉืจ ื›ื“ื™ ืœื”ืฉื™ื’ ืขืœื™ื™ื” ื ื™ื›ืจืช ื‘ื‘ื™ืฆื•ืขื™ื (ืขื‘ื•ืจ ื—ืœืง ืžื”ื˜ื•ืคื•ืœื•ื’ื™ื•ืช, ื”ืขื™ื›ื•ื‘ื™ื ื”ื•ืคื—ืชื• ื‘-50-80%).

ืžืขืจื›ืช ืžื—ืฉื•ื‘ ืžื‘ื•ื–ืจืช Apache Storm 2.0 ื–ืžื™ื ื”

ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžืฆื™ืขื” ื’ื API ื—ื“ืฉ ืžื•ื“ืคืก ืฉืœ Streams ื”ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืžื˜ืคืœื™ื ื‘ืืžืฆืขื•ืช ืคืขื•ืœื•ืช ื‘ืกื’ื ื•ืŸ ืชื›ื ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™. ื”-API ื”ื—ื“ืฉ ืžื™ื•ืฉื ืขืœ ื’ื‘ื™ ื”-API ื”ื‘ืกื™ืกื™ ื”ืกื˜ื ื“ืจื˜ื™ ื•ืชื•ืžืš ื‘ืžื™ื–ื•ื’ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืคืขื•ืœื•ืช ื›ื“ื™ ืœื™ื™ืขืœ ืืช ื”ืขื™ื‘ื•ื“ ืฉืœื”ืŸ. ื”-API ืฉืœ Windowing ืœืคืขื•ืœื•ืช ื—ืœื•ืŸ ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ืœืฉืžื™ืจื” ื•ืฉื—ื–ื•ืจ ืžืฆื‘ ื‘-backend.

ืชืžื™ื›ื” ื‘ื”ืชื—ืฉื‘ื•ืช ื‘ืžืฉืื‘ื™ื ื ื•ืกืคื™ื ื‘ืขืช ืงื‘ืœืช ื”ื—ืœื˜ื•ืช ืฉืื™ื ืŸ ืžื•ื’ื‘ืœื•ืช ืœ
ืžืขื‘ื“ ื•ื–ื™ื›ืจื•ืŸ, ื›ื’ื•ืŸ ื”ื’ื“ืจื•ืช ืจืฉืช ื•-GPU. ื‘ื•ืฆืขื• ืžืกืคืจ ืจื‘ ืฉืœ ืฉื™ืคื•ืจื™ื ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืื™ื ื˜ื’ืจืฆื™ื” ืขื ื”ืคืœื˜ืคื•ืจืžื” ืงืคืงื. ืžืขืจื›ืช ื‘ืงืจืช ื”ื’ื™ืฉื” ื”ื•ืจื—ื‘ื” ื›ืš ืฉืชื›ืœื•ืœ ืืช ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ืงื‘ื•ืฆื•ืช ืžื ื”ืœื™ื ื•ืœื”ืืฆื™ืœ ืืกื™ืžื•ื ื™ื. ื ื•ืกืคื• ืฉื™ืคื•ืจื™ื ื”ืงืฉื•ืจื™ื ืœืชืžื™ื›ื” ื‘-SQL ื•ื‘ืžื“ื“ื™ื. ืคืงื•ื“ื•ืช ื—ื“ืฉื•ืช ื”ื•ืคื™ืขื• ื‘ืžืžืฉืง ื”ืžื ื”ืœ ืœืื™ืชื•ืจ ื‘ืื’ื™ื ื‘ืžืฆื‘ ื”ืืฉื›ื•ืœ.

ืชื—ื•ืžื™ ื™ื™ืฉื•ื ืฉืœ Storm:

  • ืขื™ื‘ื•ื“ ื–ืจืžื™ ื ืชื•ื ื™ื ื—ื“ืฉื™ื ืื• ืขื“ื›ื•ื ื™ ืžืกื“ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช;
  • ืžื—ืฉื•ื‘ ืจืฆื™ืฃ: Storm ื™ื›ื•ืœื” ืœื”ืจื™ืฅ ืฉืื™ืœืชื•ืช ืจืฆื™ืคื•ืช ื•ืœืขื‘ื“ ื–ืจืžื™ื ืจืฆื™ืคื™ื, ื•ืœืกืคืง ืชื•ืฆืื•ืช ืขื™ื‘ื•ื“ ืœืœืงื•ื— ื‘ื–ืžืŸ ืืžืช.
  • Call Remote Procedure Distributed (RPC): ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Storm ื›ื“ื™ ืœืกืคืง ื‘ื™ืฆื•ืข ืžืงื‘ื™ืœ ืฉืœ ืฉืื™ืœืชื•ืช ืขืชื™ืจื•ืช ืžืฉืื‘ื™ื. ืขื‘ื•ื“ื” ("ื˜ื•ืคื•ืœื•ื’ื™ื”") ื‘-Storm ื”ื™ื ืคื•ื ืงืฆื™ื” ื”ืžื•ืคืฆืช ืขืœ ืคื ื™ ืฆืžืชื™ื ืฉืžื—ื›ื” ืœื”ื’ืขืช ื”ื•ื“ืขื•ืช ืฉืฆืจื™ืš ืœืขื‘ื“. ืœืื—ืจ ืงื‘ืœืช ื”ื•ื“ืขื”, ื”ืคื•ื ืงืฆื™ื” ืžืขื‘ื“ืช ืื•ืชื” ื‘ื”ืงืฉืจ ื”ืžืงื•ืžื™ ื•ืžื—ื–ื™ืจื” ืืช ื”ืชื•ืฆืื”. ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘-RPC ืžื‘ื•ื–ืจ ืชื”ื™ื” ืขื™ื‘ื•ื“ ืฉืื™ืœืชื•ืช ื—ื™ืคื•ืฉ ื‘ืžืงื‘ื™ืœ ืื• ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ืขืœ ืกื˜ ื’ื“ื•ืœ ืฉืœ ืกื˜ื™ื.

ืชื›ื•ื ื•ืช ืกืขืจื”:

  • ืžื•ื“ืœ ืชื›ื ื•ืช ืคืฉื•ื˜ ื”ืžืคืฉื˜ ืžืื•ื“ ืืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช;
  • ืชืžื™ื›ื” ื‘ื›ืœ ืฉืคื•ืช ืชื›ื ื•ืช. ืžื•ื“ื•ืœื™ื ื–ืžื™ื ื™ื ืขื‘ื•ืจ Java, Ruby ื•- Python, ื”ื”ืชืืžื” ืœืฉืคื•ืช ืื—ืจื•ืช ืงืœื” ื”ื•ื“ื•ืช ืœืคืจื•ื˜ื•ืงื•ืœ ืชืงืฉื•ืจืช ืคืฉื•ื˜ ืžืื•ื“ ืฉื“ื•ืจืฉ ื›-100 ืฉื•ืจื•ืช ืงื•ื“ ืœืชืžื™ื›ื”;
  • ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช: ื›ื“ื™ ืœื”ืคืขื™ืœ ืขื‘ื•ื“ืช ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื, ืขืœื™ืš ืœื™ืฆื•ืจ ืงื•ื‘ืฅ jar ืขื ืงื•ื“. Storm ืชืคื™ืฅ ื‘ืื•ืคืŸ ืขืฆืžืื™ ืงื•ื‘ืฅ jar ื–ื” ืขืœ ืคื ื™ ืฆืžืชื™ ื”ืืฉื›ื•ืœ, ืชื—ื‘ืจ ืืช ื”ืžื˜ืคืœื™ื ื”ืžืฉื•ื™ื›ื™ื ืืœื™ื• ื•ืชืืจื’ืŸ ื ื™ื˜ื•ืจ. ื‘ืกื™ื•ื ื”ืขื‘ื•ื“ื”, ื”ืงื•ื“ ื™ื•ืฉื‘ืช ืื•ื˜ื•ืžื˜ื™ืช ื‘ื›ืœ ื”ืฆืžืชื™ื;
  • ืžื“ืจื’ื™ื•ืช ืื•ืคืงื™ืช. ื›ืœ ื”ื—ื™ืฉื•ื‘ื™ื ืžื‘ื•ืฆืขื™ื ื‘ืžืฆื‘ ืžืงื‘ื™ืœ; ื›ื›ืœ ืฉื”ืขื•ืžืก ื’ื“ืœ, ืžืกืคื™ืง ืคืฉื•ื˜ ืœื—ื‘ืจ ืฆืžืชื™ื ื—ื“ืฉื™ื ืœืืฉื›ื•ืœ;
  • ืžื”ื™ืžื ื•ืช. Storm ืžื‘ื˜ื™ื—ื” ืฉื›ืœ ื”ื•ื“ืขื” ื ื›ื ืกืช ืžืขื•ื‘ื“ืช ื‘ืžืœื•ืื” ืœืคื—ื•ืช ืคืขื ืื—ืช. ื”ื”ื•ื“ืขื” ืชืขื•ื‘ื“ ืคืขื ืื—ืช ืจืง ืื ืื™ืŸ ืฉื’ื™ืื•ืช ื‘ืขืช ืžืขื‘ืจ ื“ืจืš ื›ืœ ื”ืžื˜ืคืœื™ื; ืื ื™ืชืขื•ืจืจื• ื‘ืขื™ื•ืช, ื ื™ืกื™ื•ื ื•ืช ืขื™ื‘ื•ื“ ืœื ืžื•ืฆืœื—ื™ื ื™ื—ื–ืจื• ืขืœ ืขืฆืžื.
  • ืžึฐื”ึดื™ืจื•ึผืช. ื”ืงื•ื“ ืฉืœ Storm ื ื›ืชื‘ ืžืชื•ืš ืžื—ืฉื‘ื” ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ืžืฉืชืžืฉ ื‘ืžืขืจื›ืช ืœื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช ืืกื™ื ื›ืจื•ื ื™ื•ืช ืžื”ื™ืจื” ZeroMQ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”