á á áᲠáľáŤáŹ á á°ááá á¨ááá አá ááŤá¨áŚá˝á ááľáŤ áŁáá°á¨áŚá˝áŁ á°áá áá˝ áĽá á¨á áἠáááá áŤá°á¨áá áááľááᢠááĽá á ááłáľ, Powerpoint áĽáá° áľáááľ á°áŞ ááłáŞáŤ ááĽá á°ááĽáŻá áĽá á áľá°ááá áá፠áá á. á áá á ááľ áá áááłá ââá áĽáŤáľ á°ááá§á. á¨á¨áŤá˛áľ áĽáľá¨ áá áľá¨áľ á á ááľáľ áŽááá¨ááśá˝ áá á¨áááá áĽáľá áá á¨á, áĽá ááŞáááśáš áľáááśá˝ á á áá áá ááľáĽ áááááľ áá á¨áŁá¸á, ááá áá á á¨áá°á áĽáŤáľ. á¨á°áá¸áŤáłášá ááľáá ááľá á á°ááá¨á° áŤáá á¨áĽáŤ ááá áááá˝ á°áá˝ áľáááľá áľ áĽáŤáá á°ááłá˘ á áá´ á¨á˛áááá áá áááľáŤáľ ááᏠᨠpptx áááá˝á á ááľáł á ááá áľáŤá áá° áľáááľ á°ááá : á¨áľáá á¨áľáááľ áľáŞáľ "á á˛áą" áĽáá°áá ááá á áŤáá á, áĽá á áááᥠá áľáŞáśáš ááŠááľ ááááŤáľ "áááłáľ" áá á. á áĽá áá˝áá˝ áá ᨠPowerpoint áĽá á áá¸-ááááá˝ . áĽá á á˛áľ ááá áááá¨á áá°ááŠ. áááŹáááᣠáĽá á¨ááŤá áá ááᎠáá° Powerpoint áááááľ á ááľáĽáá˘
áá áĽáááááá
á¨á ááľ áááľ á°áŠá á ááľ áĽá á áŠáŁááŤá ááľáĽ á°ááłáłá á˝ááŽá˝ á ááĽáááá ᣠá°ááłáłá á˝ááŽá˝ áľááá áá ᨠWord á á áááá áľá°áá ᣠááá áĽááłá áá áľáá˝ á°ááľ ááá°á¨áĽ áĽáŠ á˘ááá ᣠáá áá˝ áĽáŤá°á á˛áṠᣠááá°áŁá á áĽá á¨áá°á áá¤áľ áááááľ á áľá¸á᪠áááá ᢠ- áĽáŤáľ áŤáá áĽá á¨á°ááá° ááľá. áááŤá˝á áá°á
- á¨ááá áľ á ááŤá¨áĄ á ááááľ ááá ááľáĽ ááá˝ á¨áá á¨á˝áá ááá ááá á áá áľá˘
- á¨áĽá áľáááśá˝ áľá áááľ ááŽáááśá˝ áá¸áᣠáľááá
ááááą áá° ááŤá áľáááśá˝ áłáá áá á ááá áĽáá˛áŤáľáᥠááá
áľáá áááŁáá˘
- á¨áŽáľ á ááĽáŚá˝ á¨á ááŁáĽ ááľáá፠áááŁ
- á ááľáśá˝ á¨á°ááá á ááŚááľáŞá á áážá˝ ááá ááá áĽááá ááááŤáá˝ áŁ
- á¨áŠá¤áá¤á áĽááá ááááŤáá˝áŁ á¨ááŤá áá áłáá˝ áĽá ááá˝áá˘
- á¨ááá áľ á ááŤá¨áĽ ááŽáááą á áľáŞáľ ááĽáĽá ááľáĽ áááἠá áá áľ.
- á¨á°á ááá áľáááśá˝á áá¨ááἠáĽá áá°áĽá°áĽ á CI áľáááľ ááľáĽ áá°á¨á á áá áľ.
ááŹáŁ á ááá á á ááááá˝ áľáááśá˝á áááá á áááľ áá°á¨áłá á ááŤáŽá˝ á áá˘
ááá´ á¨áá´ááľ áá áĽáľá°ááᣠáĽáťáŹá á¨ááá ááá áľ á¨áááľá áá፠á¨áĽá á°áá˝ áá á¨ááŤááá áááľá áá ááá áĽááłáá áľ á áĽááŽáŹ áááŽááᢠLaTeXá á¨ááŤááá ááá á°á á áá°ááᣠáĽá á¨áĽááľ á°áĽááľ ááááľá áłáááłá ááŁáĽáá˝á á¨ááá áá á¨á°áŤáŤá áŤáááᣠáá°áá áľáá áľ ááá ááľáĽáľáĽ á áá áááĽáá áá á áááá áá˘
ááá á¨á¤á˝á˛á¤áá¤á/á˛á¤áľá¤áľ áĽáááľ á ááá áŚáł á¨ááá áá
ááľ á áá°ááᥠáááłá áĽá áá á áá á¨áŤá´ á áá°áááᢠáĽáá° áĽáľá áá, ááľááá á¨ááłááá AsciiDoctor áĽáá
áááłá áááŁá: ááá¨áŞáŤ
áľáááśá˝á áĽáá´áľ áá°á á áĽáá°ááťá
ᨠAsciiDoctor áľáááľ áŽáľá ááááľ ááá¨áłáľ á¨á°áá°á ááłááá˝á ááľá áľ á áŁá ááá ááᢠááá á áá á ááľ ááŽááá¨ááľ áááᏠáŤá°á¨ááłá¸á áľáááá áľáááśá˝ áá¸áá˘
á ááą á¨ááá á áá á¨áá¨áá°á áááľ áĽá á á ááážá˝ ááľáĽ áŤáá áááá áľáááľáĄ-
== ĐĐ°ŃоП наП Streams API?
[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* ĐОд капОŃОП:
** ĐвŃОПаŃиŃĐľŃкиК offset commit
** РойаНанŃиŃОвка
** ĐĐ˝ŃŃŃонноо ŃĐžŃŃĐžŃнио ОйŃайОŃŃикОв
** ĐогкОо ПаŃŃŃайиŃОванио
áá¤áľ
áŤáľá áĽá á¨ááá áŽáľ á ááἠá¨á ááŁáĽ ááľáá áááĄ-
== Kafka Streams API: ОйŃĐ°Ń ŃŃŃŃĐşŃŃŃĐ° KStreams-ĐżŃиНОМониŃ
[source,java]
----
StreamsConfig config = ...;
//ĐĐ´ĐľŃŃ ŃŃŃанавНиваоП вŃŃкио ОпŃии
Topology topology = new StreamsBuilder()
//ĐĐ´ĐľŃŃ ŃŃŃОиП ŃОпОНОгиŃ
....build();
----
áá¤áľ
áŞáááą á áááá á áľ áá á¨áŽáľ ááłáŤáá˝ á á°á°ááá á°áľá°áŤááá áĽá á°áťá˝ááá, áľááá "áĽáŹ áŽáľ" á ááĽááľ áá° áľáááľ ááľáĽ á¨áááá ἠáĽá á¨ááá á á˝ááł, á¨ááłáŤáá á áľáááááľ á áá¨ááἠáĽá áľá á ááŁáĽ ááľáá á ááá¨áá , á áá áá°áá á¨ááá˝á áá.
áááľáŁ áľááá ááá፠áĽá á˝áá (á á´áá˝ ááľáĽ áŁáá áľáááľ áá áŤááá á áááἠáĽáá¨áááááá˘
== Kafka Streams in Action
[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
âKafka Streams in Actionâ, November 2018
* ĐŃиПоŃŃ ĐşĐžĐ´Đ° Đ´ĐťŃ Kafka 1.0
|===
áá¤áľ
á ááłááľ áá áááľ á áŤáľáááááľá ááá áá ááłáĽáá áááłá¨áľ á¨áá áľááŞá ááľá áĽáť áŤáľáááááĄ
[%notitle]
== ĐиŃŃ Đ˛ НогаŃи ноНогкО
image::swampman.jpg[canvas, size=cover]
áá¤áľ
áĽááá áá á ááľ ááłáĽ á "ááľáśá˝ á¨á°ááá áŤáŹáá˝" á ááá ááľá áá°áá áŤáľááááá. áĽáá° áĽáľá áá, AsciiDoctor á¨áľáááą áá á°ááá
áˇá
== ĐиŃоП âBet Totalling Appâ
ĐакОва ŃŃППа вŃĐżĐťĐ°Ń ĐżĐž ŃдоНаннŃĐź ŃŃавкаП, ĐľŃНи ŃŃĐłŃĐ°ĐľŃ Đ¸ŃŃ
Од?
[graphviz, "counting-topology.png"]
-----
digraph G {
graph [ dpi = 150 ];
rankdir="LR";
node [fontsize=18; shape="circle"; fixedsize="true"; width="1.1"];
Store [shape="cylinder"; label="Local Store"; fixedsize="true"; width="1.5"]
Source -> MapVal -> Sum -> Sink
Sum -> Store [dir=both; label=" n "]
{rank = same; Store; Sum;}
}
-----
áá¤áľ
á ááłáŠ áá á áľáá áá áŤááá ááá፠áá¨á á ááááá áľ áá á¨ááľáľ á á áŁáŤáá ááááŠ, ááá° - áá á ááĽáł á á ááŤá¨áĽ áŽáľ ááľáĽ áá¨ááá áá˝áá, áľááá á¨áá áŚáł áá áĽáá°áá á¨ááłá áĽá áá° áľáááľ ááľáĽ áĽáá°áá á¨ááľááŁáľ ááá . áá á áľáááľ áá áŤááá á¨áĽáŤ ááĽááľ á áĽá á áá¨ááŤá.
á¨á áá á¨á°ááłá°á ááłááĄ-
== ĐовОŃĐżŃĐžĐ¸ĐˇĐ˛ĐžĐ´Đ¸ĐźĐ°Ń ŃйОŃка
[graphviz, "unstable-update.png"]
-----
digraph G {
rankdir="LR";
graph [ dpi = 150 ];
u -> r0;
u[shape=plaintext; label="linter updaten+ 13 warnings"]
r0[shape=point, width = 0]
r1 -> r0[ arrowhead = none, label="master branch" ];
r0-> r2 []; b1 -> b4; r1->b1
r1[label="150nwarnings"]
b1[label="Âą 0nwarnings"]
b4[label="Âą 0nwarnings"]
b4->r2
r2[label="163nwarnings", color="red", xlabel=<<font color="red">merge blocked</font>>]
{rank = same; u; r0; b4;}
}
-----
áá¤áľ
á áááŤá˝á áá á ááŤááŞá ááá¨á áĽá áľááá˝á áá¨á á ááš áá ááš áá
á áá¨á¨áťá ᣠá¨áá°áľ áá ᳠ᣠá¨ááá á˛áŤááŤá ááá áá á°á¨ááá á¨á á á ááľá áá° áľáááľ ááľáĽ ááľááŁáľ á¨ááá á¨á á˛á˘áśáá°á áá á¨á°ááá áá áľáááľ ááłá°á áá˝áá áŁ
á¨ááá
áľ á ááŤá¨áĽá ááŽáááľ á áľáŞáľ ááĽáĽá áľáááľ áá áá°á°á¨áḠáŽáľ áááἠá ááá
áľ á ááŤá¨áĽ áá á¨á፠áľáŤáá˝á ááá°áŤááľ áŤáľá˝ááá ᣠá ááááŞáŤ ᣠáááľá áĽá á˛ááá á¨ááá á á°ááŁáŤáľá áááá¨áľá˘ á RevealJS ááľáĽ á¨áľáááľ ááľá (á
áá¸-ááááὠᣠáłáŤáὠᣠááŁá) á˛á¤áľá¤áľ á áá áá ááááťáᢠá¨á˛á¤áľá¤áľ áá áŤáá á¨áá á˝ááł ááἠá áľá°áááá
á á°áá¸áŤáłá˝ á¨á¤á˝á˛á¤áá¤á áá˝ ááááŁáľ
ááá˝ á¨á˝áá áááŽá˝ á áŁá áĽáŠ áá¸áᣠáá áĽáá´áľ áá° á ááŤá¨áĄ áŤáą áŤá áá áŻá¸á?
AsciiDoctor á áŠá˘ á¨á°áťá ááŽáááľ áá áĽá áĽáąá ááááá áĽá ááááśá˝ á áᢠá ááááŞáŤ á¨áŠá˘ áááá ááŤá áĽá á áľáŞáśáá°áá á ááĽáł ááľáŹáľ áá˝ááᣠáá á ááááŁáľ á¨áŠá˘ ááᢠááŤááá á¨áá˝ááá á áἠááá˘
ᨠRuby ááŤáá áá áá áá¸áľ áŤáááá, á¨ááľá¨áŤ ááľáá áá áá áá˝áá
á¨áá¨áĽáŠáľ á ááŤá á á°áá°á á°á¨á áŤáá°á á á áááľá áá˝áá, áá ááĽá áĽáá° á፠ááᢠá áŁá ááš áá. Ruby ááá docker áĽáá˛áŤá á ááááá ááá áá ᨠMaven áľááŞááľ á áá áá áľáááśá˝á áĽáá˛ááĽáŠ ááá áľáááłá.
ááá ááá ááŽáááą áá
áááááľ á áááľá¸áá graphviz
, GraphViz ááá PlantUML ááŤáááľ ááá áá á¨ááá á¨ááŤáľáááá.) ᨠ.adoc áááá˝áá áá° á ááá ááľáĽ áĽáť áŤáľáááĄ. src/main/asciidoc/
. áĽáá
áĄáĄ
áľáááśá˝á áá° áá˛á¤á ááá
ááá áĽááłá á¨áľáááľ á¤á˝á˛á¤áá¤á áĽáŞáľ áŤáąá á¨áťá á˘ááá á¨á°áá¸áŤáłážá˝ áá˛á¤á áĽáŞáľ á ááá áŤáľááááᢠá ááááŞáŤ ᣠá°áááŞá á¨áŤáłá¸áá áááśá ááááááľ áĽáľá á ááá°áĄ á ááłááľ áŽááá¨ááśá˝ áá ᣠáĽááą á á¤á˝á˛á¤áá¤á ááľáĽ áĽááłá áłáá áĽá á°áá¸áŤáłážá˝á âá pptx ááá pdf á áá¸áľ á áĽáĽá â áááááᢠá ááá°á á°á¨áᣠá á ááŤá¨áĄ áá á áá˛á¤á ááááľ á áŽááá¨ááľ áá´áŞáŤáá˝ ááľáĽ áĽáá˛áłá°á á áááášá áŤáá°áťáťá á¨áľáááľ áĽáľá ááá áĽáŠ ááá˘
áĽáá° áĽáľá ááᣠᨠNode.js áááá፠áá
áá á°ááŁá áááááá˘
node decktape.js -s 3200x1800 --slides 1-500
reveal "file:///index.html?fragments=true" slides.pdf
á áá¨áŤ áĽá á áľá á°áľ áááŁáľ á¨áá á¨áĽá á´ááłá áááľááá áááľ áá´áá˝áĄ-
-
á áááŞáŤ á áŠá áááłáľ
-s
á áľáἠá áłá áááἠá áá áľáŁ áŤáá áá፠á ááἠáá¤áśá˝ áá á˝ááŽá˝ ááአáá˝ááᢠ-
á á¤á˝á˛á¤áá¤á á¨ááá áľ á ááŤá¨áĽ áŠá áá¤á ááľáĽ ᣠááŹáąá ááá á ááĽááľ
?fragments=true
, áá á ááĽáŤááłááą á¨áľáááľá ááŤá¨áá áááł á¨á°áᨠá¨áá˛á¤á áá˝ áĽáá˛ááĽáŠ ááá áľáááłá (áááłá á ááľáľ ááá˝ áá ááľáľ áááá áĽááá˝ á ááľ á á ááľ á¨áłáŠ)ᢠáá á áŞáááľ áá áĽáá˛á ááááąá áá˛á¤á á áŤáą áĽáá° áá á¨á˘áŤ áĽáá˛á áá ááá áľáááłáá˘
á áľá áá á áŤáľ-á°á áá°áĽá°áĽ áĽá áá°á
áááŚá˝ áá° áľáŞáľ ááĽáĽá áľáááľ á˛áᥠáľáááśá˝ á áŤáľ-á°á á˛ááᥠááš ááᣠáĽá áá á ááá á áááááľ á áááá¨áĽ áá á áŤáľ á°á á¨á°á ááአáľáááśá˝ á˛áá á á¨á áá ááš ááᢠá¨á˘áá°áááľ áľáááśá˝ á¨á˘áá°áááľ áĽá á¨ááŽááá°á áá á¨á°ááá á¨ááááá áá˝á á ááá á á°áááŤá˝ ááľ ááŤááľ áá˝ááá˘
á áľáŤá˝á ááľáĽ GitHubá áľáááá áá, ᨠCI áľáááľ á°ááĽáŻá áá፠áá gh-pages
á GitHub áá áŤáá ááŽáááľá á áá ááááᢠ<ваŃĐľ иПŃ>.gihub.io/<Đ˛Đ°Ń ĐżŃОокŃ>
.
ᨠTravisCI áá
á áááá áŤá áá
áᣠá¨áášá á¤á˝á˛á¤áá¤á áĽáŞáľ Mavená á áá áá áá áááᣠá´ááłá á°á á
áá áá° áá˛á¤á áááἠáĽá áá¤áąá áá° á
áááŤá ááľááá á¨ááŽá˘ gh-pages
á github.io áá ááá°á áááľáá
á TravisCI á áŠá áĽáá˛á áŤááá ááŽáááľ áááááŁáľ, á¨á áŤáŁá˘ á°ááááŽá˝á áááááľ áŤáľáááááłá
GH_REF
- á¨á áš áá github.com/inponomarev/csa-hbGH_TOKEN
- ᨠGitHub ááłá¨áť ááľáá°áŤá˘ á GitHub ááľáĽ á áĽááľá á¨ááá፠á ááĽáŽá˝áŁ á¨ááᢠááźáśá˝ -> á¨áá ááłá¨áť áśá¨áá˝ ááľáĽ ááŤáááľ áá˝ááᢠá¨ááá áľ á ááŤá¨áĽá áá° ááá áá¨ááť á¨á°ááᥠááá ááľáá°áŤ âá¨á áἠáá¨ááťáá˝á ááľá¨áąâ áĽá¸ááá á¨ááłá¨áť á°á¨á áááá˝ á á ááá˘GH_USER_EMAIL
/GH_USER_NAME
- áľá / ááľáł áĽááľ, á áĽáą ááľá áá° á áááŤá ááááľ áá¨áááágh-pages
.
áľááá áĽáŤááłááą á GitHub áá áŤáá á¨ááá áľ á ááŤá¨áĽ áŽáľ á á¤á˝á˛á¤áá¤á áĽá áá˛á¤á á áá¸áśá˝ ááľáĽ áľáááśá˝á á áŤáľ-á°á áĽáá°áá áĽáá˛ááᣠáĽá áá° github.io áĽáá˛ááá¸á áááŤáᢠ(á áĽáááĽáŁ á áá¨á¨áť ááá ááľá¨á á¨ááľáááá¸áá á ááŤá¨áŚá˝á áá° github.io ááá á á ááĽá á˘)
á¨ááŽáááľ ááłááá˝
á áá¨á¨áťáᣠá¨áĽáŤáľáá á¨á ááŤá¨áĽ ááŽáááśá˝á áááá á áá° áá¨á áľááŞááśá˝ áĽá CI áá á áŤáá¸á áá° á ááľ áááľ ááłá áá á¨á˘áŤ ááŽáááśá˝ áŤáááááĄ
-
https://github.com/inponomarev/kstreams-examples (á¨áĽá ááᣠá JPoint 2019) -
https://github.com/inponomarev/csa-hb (á¨áĽá ááᣠáááá°ááĄá 2019)
á¨áľááĽáľ ááá ááááľ! áá´áááŤá á ááŤá¨áŚá˝ ááźá á¨ááááá á áááľááá đ
ááá: hab.com