-
Notifications
You must be signed in to change notification settings - Fork 0
/
kafka-apache.html
191 lines (164 loc) · 10.4 KB
/
kafka-apache.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Introduction kafka </title>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="css/clean-blog.min.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href='http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
blockquote {
font-style: normal;
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 4px;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: red;
word-break: break-all;
word-wrap: break-word;
background-color: #F9F2DE;
border: 1px solid #F9F2DE;
border-radius: 4px;
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header page-scroll">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">Accueil</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="contact.html">Contact</a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header class="intro-header" style="background-image: url('img/post-bg.jpg')">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="post-heading">
<h1>Kafka - le système de messagerie distribué tendance </h1>
<span class="meta"> 07 Septembre 2017</span>
</div>
</div>
</div>
</div>
</header>
<!-- Post Content -->
<article>
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<p>KAFKA est un système de mesagerie distribué conçu par linkedin en 2009,ouvert au public en 2011, qui par la suite a été repris et maintenu par apache,puis les trois principaux developpeurs qui travaillaient sur kafka ont créé confluent, qui gère et font évoluer kafka, son utilisation est en croissance exponencielle dans les entreprises qui concoivent des systèmes distribué à fort trafic et avec des gros volumes de données. </p>
<h3>Pourquoi kafka </h3><br>
<p>Kafka a fait ses preuves depuis quelques années maintenant dans le monde des échanges de messages en temps réel. En gros kafka vient un peu solutionner le problème que les entreprises rencontrent dès qu’elles sont confrontées à des quantités montrueuses de données avec des débits très élevés , avec différents integrations provenants de différents systèmes, dans ce cas kafka peut jouer le role de centralisateur de toutes ces données. </p>
<p>Kafka est un système de pipeline traitant des données en emps réel ou en mode miscro batch, on retrouve toujours les modes standarts avec un producteur et un consomateur de message ( publish-subscribe ) </p>
<p>kafka est un système de file d'attente robuste qui peut gérer un volume élevé de données et vous permet de passer des messages d'un point à un autre. Les messages Kafka sont conservés sur le disque et répliqués au sein du cluster pour éviter la perte de données. Kafka est construit au-dessus du service de synchronisation de ZooKeeper. Il intègre très bien Kafka Stream qui est sorti dans la version 0.10, apache Storm ou Spark streaming en temps réel pour l'analyse des données .</p>
<br><br>
<center><a href="img/Producers.png">
<img class="img-responsive" src="img/Producers.png" alt="">
</a></center>
<br><br>
<h3 >Avantages de kafka </h3><br>
<ul>
<li>Kafka est distribué </li>
<li>Kafka est fiable </li>
<li>Kafka est repliqué et a une forte tolérance aux pannes</li>
<li>Kafka peut gérer de gros volumetrie et un tres grand débits et nous pouvons facilement le faire évoluer </li>
<li>Kafka persite sur disque les messages, il utilise ce qu’on appelle «Distributed commit log» ,càd l'écriture dans un répertoire fileSystem </li>
</ul>
<h3 >Terminologies de kafka </h3><br>
<h4 style="text-decoration: underline"><strong>Topic Kafka </strong></h4>
<p>Dans Kafka, un topic est un bus logique sur lequel les message sont publiés. Chaque topic peut contenir un ou plusieurs consommateurs qui s'abonnent aux messages du topic et des producteurs qui emmentent des messages vers ce topic .</p>
<h4 style="text-decoration: underline"><strong>Partition Kafka </strong></h4>
<p>Un topic Kafka est regroupé en plusieurs partitions pour l'évolutivité ( Nous pouvons faire evolué notre système kafka horizontalepment en rajoutant des partitions ). Chaque partition est une séquence de messages ( Array de messages - tableau de bytes plus exactement) qui sont continuellement ajoutés. Un index unique séquentiel appelé offset est attribué à chaque message dans la partition , pour que les memes messages soient envoyés vers la même partion , un hash sur la clé du message modulo le nombre de partition pour envoyer le message. </p>
<center><a href="img/log_anatomy.png">
<img class="img-responsive" src="img/log_anatomy.png" alt="">
</a></center><br>
<h4 style="text-decoration: underline"><strong>Le producteur kafka </strong></h4>
<p>Un producteur Kafka est un programme qui envoie des messages à un ou plusieurs topics Kafka. </p>
<h4 style="text-decoration: underline"><strong>Le consomateur kafka et le groupe de consomateurs </strong></h4>
<p>Un consommateur kafka est un programme qui reçoit des messages d'un topic Kafka. Dans Kafka, les consommateurs se regroupent logiquement dans un groupe de consommateurs. Si le consommateur disparaît, la partition est attribuée à un autre consommateur du groupe. un groupe de consomateur distribue la lecture des partitions au sein de ses membres, certains consommateurs peuvent recevoir des messages provenant d'une partition ou plus. Dans un groupe de consommateurs, tous les consommateurs travaillent avec une répartition de charge égale, c'est-à-dire qu'un consommateur d'un groupe ne reçoit qu'un message d'une partition .</p>
</div>
</div>
</div>
</article>
<hr>
<!-- Footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<ul class="list-inline text-center">
<li>
<a href="https://twitter.com/ghiles_J">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x fa-inverse"></i>
</span>
</a>
</li>
<li>
<a href="https://github.com/aaitsalem/">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
</li>
</ul>
<p class="copyright text-muted">Copyright © le webeur 2017</p>
</div>
</div>
</div>
</footer>
<!-- jQuery -->
<script src="js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="js/clean-blog.min.js"></script>
</body>
</html>