�gӭ���R�ЈD�W(w��ng) Ո(q��ng) | ע��(c��)

���] KAFKA STREAMS��(sh��)��(zh��n)

�����磺�����]늳���������r(sh��)�g��2018-07-01
�_���� ���� 퓔�(sh��)�� 235
�� �D �r(ji��):¥34.8(5.0��) ���r(ji��)  ¥69.0 ��䛺�ɿ�����(hu��)�T�r(ji��)
����ُ��܇ �ղ�
�_������ ȫ�����]
?�½������س���
������Ǖ�����>

KAFKA STREAMS��(sh��)��(zh��n) ���(qu��n)��Ϣ

KAFKA STREAMS��(sh��)��(zh��n) ������ɫ

Kafka Streams��Kafka�ṩ��һ��(g��)���ژ�(g��u)����ʽ̎�������Java�������cStorm��Spark����ʽ̎����ܲ�ͬ����һ��(g��)�H��ه��Kafka��Java����������һ��(g��)��ʽ̎���������Kafka֮�⣬Kafka Streams����Ҫ�~�����ʽ̎����Ⱥ���ṩ���p����(j��)�����õ���ʽ̎��API�� ��������4��������9�����Ļ��A(ch��)API����(f��)�s��?f��)�đ?y��ng)�ã�ͨ�^���wʾ���ɜ\�����Ԕ��(x��)��B��Kafka Streams���A(ch��)֪�R(sh��)��ʹ�÷�������������Ҫ��(n��i)�ݰ�����ʽ̎���l(f��)չ�v�̺�Kafka Streams����ԭ���Ľ�B��Kafka���A(ch��)֪�R(sh��)�Ľ�B��ʹ��Kafka Streams��(sh��)�F(xi��n)һ��(g��)���w��ʽ̎�푪(y��ng)�ó�����ӑՓ��B(t��i)�惦(ch��)����ʹ�÷�����ӑՓ�������Ķ�Ԫ�Լ�ʹ�È�������BKafka Streams��(y��ng)�ó���ıO(ji��n)�ؼ��yԇ��������Bʹ��Kafka Connect���F(xi��n)�Д�(sh��)��(j��)Դ���ɵ�Kafka Streams�У�ʹ��KSQL�M(j��n)�н���ʽ��ԃ���� �����m��ʹ��Kafka Streams��(sh��)�F(xi��n)��ʽ̎�푪(y��ng)�õ��_�l(f��)�ˆT��x��

KAFKA STREAMS��(sh��)��(zh��n) ��(n��i)�ݺ���

Kafka Streams��Kafka�ṩ��һ��(g��)���ژ�(g��u)����ʽ̎�������Java�������cStorm��Spark����ʽ̎����ܲ�ͬ����һ��(g��)�H��ه��Kafka��Java�죬������һ��(g��)��ʽ̎���������Kafka֮�⣬Kafka Streams����Ҫ�~�����ʽ̎����Ⱥ���ṩ���p����(j��)�����õ���ʽ̎��API�� ��������4��������9�����Ļ��A(ch��)API����(f��)�s��?f��)�đ?y��ng)����ͨ�^���wʾ���ɜ\�����Ԕ��(x��)��B��Kafka Streams���A(ch��)֪�R(sh��)��ʹ�÷�������������Ҫ��(n��i)�ݰ�����ʽ̎���l(f��)չ�v�̺�Kafka Streams����ԭ���Ľ�B��Kafka���A(ch��)֪�R(sh��)�Ľ�B��ʹ��Kafka Streams��(sh��)�F(xi��n)һ��(g��)���w��ʽ̎�푪(y��ng)�ó�����ӑՓ��B(t��i)�惦(ch��)����ʹ�÷�����ӑՓ�������Ķ�Ԫ�Լ�ʹ�È�������BKafka Streams��(y��ng)�ó���ıO(ji��n)�ؼ��yԇ��������Bʹ��Kafka Connect���F(xi��n)�Д�(sh��)��(j��)Դ���ɵ�Kafka Streams����ʹ��KSQL�M(j��n)�н���ʽ��ԃ���� �����m��ʹ��Kafka Streams��(sh��)�F(xi��n)��ʽ̎�푪(y��ng)�õ��_�l(f��)�ˆT��x��

KAFKA STREAMS��(sh��)��(zh��n) Ŀ�

�� һ���֡��_��Kafka Streams֮��

�ڡ�1�� �gӭ����Kafka Streams��3

1.1����(sh��)��(j��)�İl(f��)չ�Լ�������θ�׃�����O(sh��)Ӌ(j��)��ʽ�ġ�3

1.1.1����(sh��)��(j��)��Դ��4

1.1.2��MapReduce�е���Ҫ���5

1.1.3����̎��߀����7

1.2����ʽ̎�����顡8

1.3��̎��ُ�I���ס�9

1.3.1����(qu��n)����ʽ̎�����x��9

1.3.2��������☋(g��u)��D����10

1.4����׃����ُ�I���׵�ҕ�ǡ�10

1.4.1��Դ��(ji��)�c(di��n)��11

1.4.2�����ÿ����ι�(ji��)�c(di��n)��11

1.4.3��ģʽ��(ji��)�c(di��n)��11

1.4.4����(ji��ng)��(l��)��(ji��)�c(di��n)��12

1.4.5���惦(ch��)��(ji��)�c(di��n)��13

1.5��Kafka Streams��ُ�I̎����(ji��)�c(di��n)�D�еđ�(y��ng)�á�13

1.6��Kafka Streams��ُ�I�������еđ�(y��ng)�á�14

1.6.1�����xԴ��15

1.6.2���� һ��(g��)̎�������������ÿ�̖(h��o)�a��15

1.6.3���ڶ���(g��)̎������ُ�Iģʽ��16

1.6.4��������(g��)̎�������͑���(ji��ng)��(l��)��17

1.6.5�����Ă�(g��)̎����������ُ�Iӛ䛡�18

1.7���Y(ji��)��18

�ڡ�2�� Kafka����ָ�ϡ�20

2.1����(sh��)��(j��)���}��20

2.2��ʹ��Kafka̎�픵(sh��)��(j��)��21

2.2.1��ZMartԭʼ�Ĕ�(sh��)��(j��)ƽ�_(t��i)��21

2.2.2��һ��(g��)Kafka�N�۽��ה�(sh��)��(j��)���ġ�22

2.3��Kafka�ܘ�(g��u)��23

2.3.1��Kafka��һ��(g��)��Ϣ������23

2.3.2��Kafka��һ��(g��)��־��24

2.3.3��Kafka��־����ԭ����25

2.3.4��Kafka�ͷօ^(q��)��25

2.3.5���օ^(q��)���I��(du��)��(sh��)��(j��)�M(j��n)�зֽM��26

2.3.6�������Զ��x�օ^(q��)����27

2.3.7��ָ��һ��(g��)�Զ��x�օ^(q��)����28

2.3.8���_��ǡ��(d��ng)?sh��)ķօ^(q��)��(sh��)��29

2.3.9���ֲ�ʽ��־��29

2.3.10��ZooKeeper���I(l��ng)��(d��o)�ߡ�׷�S�ߺ͸�����30

2.3.11��Apache ZooKeeper��31

2.3.12���x��һ��(g��)��������31

2.3.13��������31

2.3.14����������š؟(z��)��32

2.3.15����־������33

2.3.16����־�h����33

2.3.17����־���s��35

2.4�����a(ch��n)�߰l(f��)����Ϣ��36

2.4.1�����a(ch��n)�ߌ��ԡ�38

2.4.2��ָ���օ^(q��)�͕r(sh��)�g����39

2.4.3��ָ���օ^(q��)��39

2.4.4��Kafka�еĕr(sh��)�g����40

2.5�����M(f��i)���xȡ��Ϣ��40

2.5.1������ƫ������41

2.5.2���Ԅ�(d��ng)�ύƫ������42

2.5.3���ք�(d��ng)�ύƫ������42

2.5.4����(chu��ng)�����M(f��i)�ߡ�43

2.5.5�����M(f��i)�ߺͷօ^(q��)��43

2.5.6����ƽ�⡡43

2.5.7������(x��)���ȵ����M(f��i)�߷��䡡44

2.5.8�����M(f��i)��ʾ����44

2.6�����b���\(y��n)��Kafka��45

2.6.1��Kafka�������á�45

2.6.2���\(y��n)��Kafka��46

2.6.3���l(f��)�͵� һ�l��Ϣ��47

2.7���Y(ji��)��49

�ڶ����֡�Kafka Streams�_�l(f��)ƪ

��3�¡��_�l(f��)Kafka Streams��53

3.1����ʽ̎����API��53

3.2��Kafka Streams��Hello World��54

3.2.1����(g��u)��“Yelling App”����?f��)�?5

3.2.2��Kafka Streams���á�58

3.2.3��Serde�Ą�(chu��ng)����59

3.3��̎���͑���(sh��)��(j��)��60

3.3.1����(g��u)��һ��(g��)��?f��)�?1

3.3.2����(chu��ng)��һ��(g��)�Զ��x��Serde��67

3.4������ʽ�_�l(f��)��69

3.5����һ����71

3.5.1��������71

3.5.2����ӛ䛌���Kafka֮�⡡76

3.6���Y(ji��)��78

��4�¡����͠�B(t��i)��79

4.1���¼���˼����79

4.2������B(t��i)������(y��ng)�õ�Kafka Stream��81

4.2.1��ֵ�D(zhu��n)�Q̎������82

4.2.2���Р�B(t��i)�Ŀ͑���(ji��ng)��(l��)��82

4.2.3����ʼ��ֵ�D(zhu��n)�Q����84

4.2.4��ʹ�à�B(t��i)��Purchase��(du��)��ӳ���Reward Accumulator��84

4.2.5�����ª�(ji��ng)��(l��)̎������88

4.3��ʹ�à�B(t��i)�惦(ch��)���Һ�ӛ���ǰ�����Ĕ�(sh��)��(j��)��89

4.3.1����(sh��)��(j��)���ػ���90

4.3.2�����ϻ֏�(f��)�����e(cu��)��91

4.3.3��Kafka Streamsʹ�à�B(t��i)�惦(ch��)��91

4.3.4�������I/ֵ�惦(ch��)����(y��ng)�ߡ�92

4.3.5����B(t��i)�惦(ch��)���e(cu��)��93

4.3.6������׃����־���}��93

4.4���B���������Ӷ�������94

4.4.1���O(sh��)��(sh��)��(j��)��95

4.4.2�����ɰ����͑�ID���I���(zh��)���B�ӡ�96

4.4.3����(g��u)���B�ӡ�98

4.4.4�������B���x�(xi��ng)��102

4.5��Kafka Streams�еĕr(sh��)�g����104

4.5.1���Ԏ��ĕr(sh��)�g����ȡ����(sh��)�F(xi��n)�105

4.5.2��WallclockTimestampExtractor��106

4.5.3���Զ��x�r(sh��)�g����ȡ����106

4.5.4��ָ��һ��(g��)�r(sh��)�g����ȡ����107

4.6���Y(ji��)��108

��5�¡�KTable API��109

5.1�����ͱ�֮�g���P(gu��n)ϵ��110

5.1.1��ӛ�����110

5.1.2������ӛ䛻�׃����־��111

5.1.3���¼����c��������(du��)�ȡ�113

5.2��ӛ䛸��º�KTable���á�115

5.2.1���O(sh��)�þ��澏�_��С��115

5.2.2���O(sh��)���ύ�g����116

5.3���ۺϺ��_��������117

5.3.1�����ИI(y��)�R����Ʊ�ɽ�����118

5.3.2���_��������122

5.3.3���B��KStream��KTable��128

5.3.4��GlobalKTable��130

5.3.5���ɲ�ԃ�Ġ�B(t��i)��133

5.4���Y(ji��)��133

��6�¡�̎����API��135

6.1�������A�����c������Ƶę�(qu��n)�⡡135

6.2��ʹ��Դ��̎�����ͽ�������(chu��ng)��һ��(g��)��?f��)�?36

6.2.1������һ��(g��)Դ��(ji��)�c(di��n)��136

6.2.2������һ��(g��)̎������(ji��)�c(di��n)��137

6.2.3������һ��(g��)��������(ji��)�c(di��n)��140

6.3��ͨ�^��Ʊ����̎���������о�̎����API��141

6.3.1����Ʊ���F(xi��n)̎������(y��ng)�ó���142

6.3.2��process()������145

6.3.3��punctuator��(zh��)��147

6.4���M��̎������148

6.5������̎����API��Kafka Streams API��158

6.6���Y(ji��)��159

�������֡�����Kafka Streams

��7�¡��O(ji��n)�غ����ܡ�163

7.1��Kafka�����O(ji��n)�ء�163

7.1.1���y�u(p��ng)���M(f��i)�ߺ����a(ch��n)�����ܡ�164

7.1.2���z�����M(f��i)����165

7.1.3���r�����a(ch��n)�ߺ����M(f��i)�ߡ�166

7.2����(y��ng)�ó���ָ��(bi��o)��169

7.2.1��ָ��(bi��o)���á�171

7.2.2������B�ӵ��ռ�����ָ��(bi��o)��172

7.2.3��ʹ��JMX��172

7.2.4���鿴ָ��(bi��o)��176

7.3������Kafka Streams�{(di��o)ԇ���g(sh��)��177

7.3.1���鿴��(y��ng)�ó���ı��F(xi��n)��ʽ��177

7.3.2���@ȡ��(y��ng)�ó�����N��B(t��i)��֪ͨ��178

7.3.3��ʹ�à�B(t��i)�O(ji��n) ����179

7.3.4����B(t��i)�֏�(f��)�O(ji��n) ����181

7.3.5��δ���@�Į���̎������184

7.4���Y(ji��)��184

��8�¡��yԇKafka Streams��(y��ng)�ó���185

8.1���yԇ��?f��)�?86

8.1.1����(g��u)���yԇ������188

8.1.2���yԇ��?f��)��еĠ�B(t��i)�惦(ch��)��190

8.1.3���yԇ̎�������D(zhu��n)�Q����191

8.2�����ɜyԇ��193

8.3���Y(ji��)��199

���IJ��֡�Kafka Streams�M(j��n)�A

��9�¡�Kafka Streams�ĸ߼�(j��)��(y��ng)�á�203

9.1����Kafka�c������(sh��)��(j��)Դ���ɡ�204

9.1.1��ʹ��Kafka Connect���ɔ�(sh��)��(j��)��205

9.1.2������Kafka Connect��205

9.1.3���D(zhu��n)�Q��(sh��)��(j��)��207

9.2�������(sh��)��(j��)�졡211

9.2.1������ʽ��ԃ�Ĺ���ԭ����213

9.2.2�������B(t��i)�惦(ch��)��213

9.2.3����(chu��ng)���Ͳ��ҷֲ�ʽ��B(t��i)�惦(ch��)��215

9.2.4����������ʽ��ԃ��216

9.2.5����ԃ����(w��)����(n��i)����218

9.3��KSQL��221

9.3.1��KSQL���ͱ���222

9.3.2��KSQL�ܘ�(g��u)��222

9.3.3�����b���\(y��n)��KSQL��224

9.3.4����(chu��ng)��һ��(g��)KSQL����224

9.3.5������KSQL��ԃ��226

9.3.6����(chu��ng)��һ��KSQL����227

9.3.7������KSQL��227

9.4���Y(ji��)��228

���A���~���������Ϣ��229

���B�����_һ��̎���Z�x��234

չ�_ȫ��

KAFKA STREAMS��(sh��)��(zh��n) ���ߺ���

С����·P. ؐ�ܿˣ�William P. Bejeck Jr.������Bill Bejeck����Kafka StreamsԴ�aؕ�I(xi��n)������Conflument��˾��Kafka Streams�F(tu��n)�(du��)��������15�����ϵ�ܛ���_�l(f��)��(j��ng)�(y��n)������8�ꌣע�ں���_�l(f��)���؄e��̎��������(sh��)��(j��)���ڔ�(sh��)��(j��)�្�F(tu��n)�(du��)�У�ʹ��Kafka���������ο͑��Ĕ�(sh��)��(j��)����

��Ʒ�u(p��ng)Փ(0�l)
���o�u(p��ng)Փ����
�������]
��݋���]
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�