Parsování času z requestu pomocí Jackson v Kotlinu

Pokud vytváříte restovou službu a používáte Spring Boot s Kolinem, je pravděpodobné, že časem budete potřebovat parsovat čas z requestů. Nejdříve je třeba přidat závislost:

implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.9.7")

Ukázky anotací a requestů

Číst dálParsování času z requestu pomocí Jackson v Kotlinu

Apache Kafka – zjištění údajů o konzumentovi

Při asynchroním posílání zpráv je občas důležité vědět, kolik zpráv bylo přijato, kolik zpráv ještě čeká na zpracování atd. Pokud navážu na předchozí příspěvek, kde jsme si vytvořili test-topic a poslali do něj několik zpráv, můžeme k tomuto účelu použít script bin/kafka-consumer-groups.sh. Ten nám zobrazí údaje pro určitou consumer group. Konzumentská skupina (consumer group) sdružuje konzumenty (consumers).

Konzumenta, který patří do určité skupiny vytvoříte pomocí volby --group

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --group test-group --from-beginning

Pokud pošlete do tématu (topic) několik zpráv a zavoláte skript, uvidíte základní údaje. Bylo posláno pět zpráv a všechny byly zkonzumovány.

Číst dálApache Kafka – zjištění údajů o konzumentovi

Základy Apache Kafky

Apache Kafka se používá pro asynchronní posílání zpráv. V tomto příspěvku ukáži instalaci na Linux a základní práci – vytvoření téma (topic) a posílání a přijímání zpráv.

Stáhněte si Kafku a rozbalte stažený soubor (tar -xzf kafka_verze.tgz). Přesuňte se do rozbaleného adresáře. Všechny důležité skripty naleznete v adresáři bin.

Kafka používá ZooKeeper. To je služba, která udržuje informace o konfiguraci v distribuovaném prostředí. Nejdříve je tedy potřeba spustit ZooKeeper server.

bin/zookeeper-server-start.sh config/zookeeper.properties

Číst dálZáklady Apache Kafky

Funkce groupBy v Kotlinu

Kotliní standardní klihovna nabízí funkce pro groupování elementů kolekcí. Základní groupBy() funkce přijímá lambdu a vrací mapu. V této mapě je každý klíč (key) výsledkem lambda funkce a hodnota (value) je seznam elementů z kolekce podle daného klíče.

    val names = listOf("Petr", "Jan", "Marie", "Matouš", "Petra", "Soňa", "Patricie")

    println(names.groupBy { it.first() })
    println(names.groupBy(keySelector = { it.first() }))
    // {P=[Petr, Petra, Patricie], J=[Jan], M=[Marie, Matouš], S=[Soňa]}

    println(names.groupBy { it.length })
    println(names.groupBy(keySelector = { it.length }))
    // {4=[Petr, Soňa], 3=[Jan], 5=[Marie, Petra], 6=[Matouš], 8=[Patricie]}

    println(names.groupBy(keySelector = { it.length }, valueTransform = { it.toUpperCase() }))
    // {4=[PETR, SOŇA], 3=[JAN], 5=[MARIE, PETRA], 6=[MATOUŠ], 8=[PATRICIE]}

    println(names.groupBy(keySelector = { it.substring(0, 2) }, valueTransform = { if (it.length == 4) it.toUpperCase() else it.toLowerCase() }))
    // {Pe=[PETR, petra], Ja=[jan], Ma=[marie, matouš], So=[SOŇA], Pa=[patricie]}

Číst dálFunkce groupBy v Kotlinu