7,540
edits
Changes
→Futtatás
</pre>
<br>
===Futtatás===
Telepítsük fel a docker swarm stack-et:
<pre>
# docker stack deploy -c confluence_swarm_logstash.yaml confluence
Creating network confluence_kafka-net
Creating service confluence_logstash
Creating service confluence_zookeeper
Creating service confluence_kafka
Creating service confluence_schemaregistry
</pre>
Majd nézzük bele a logstash service logjába. Látnunk kell, hogy hozzá tudod csatlakozni a '''test-topic''' nevű topichoz. A séma regiszterhez csak az üzenet deszerializációja közben fog csatlakozni, ezért nem láthatjuk az indulási logban.
<pre>
# docker service logs -f confluence_logstash
...
[INFO ]Kafka version : 1.0.0
[INFO ]Kafka commitId : aaa7af6d4a11b29d
Majd indítsuk el a '''Java avro-kafak producer''' fejezetben leírt java producert, ami egy egy Employee objektumot fog beküldeni a test-topic-ba.
Emlékezzünk rá, hogy az Employee objektum sémája az alábbi:
<source lang="C++">
{"namespace": "hu.alerant.kafka.avro.message",
"type": "record", "name": "Employee",
"fields": [
{"name": "firstName", "type": "string"},
{"name": "lastName", "type": "string"},
{"name": "age", "type": "int"},
{"name": "phoneNumber", "type": "string"}
]
}
</source>
A java producer-ben az Employee objektum példányosítása az alábbi:
<source lang="java">
...
Producer<Long, Employee> producer = createProducer();
Employee bob = Employee.newBuilder().setAge(35)
.setFirstName("Bob")
.setLastName("Jones")
.setPhoneNumber("")
.build();
...
</source>
Miután a producer beküldte az avro üzenetet a Kafka test-topic-ba, a logstash logban meg kell jelenjen az alábbi üzenet:
<pre>
| {
| }
</pre>
Láthatjuk, hogy a logstash-avro plugin kiegészítette két meta adattal az üzenetet:
* @timestamp
* @version
A fenti konfig fájlban, az output egyszerű módosításával Elasticsarch-be írható az adat.