Skip to content

Instantly share code, notes, and snippets.

View rafael-as-martins's full-sized avatar
🎯
Focusing

Rafael Martins rafael-as-martins

🎯
Focusing
View GitHub Profile
package com.medium.kafka.controller;
import lombok.RequiredArgsConstructor;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.web.bind.annotation.RestController;
package com.medium.kafka.config;
import com.medium.kafka.ConsumerApplicationProperties;
import lombok.RequiredArgsConstructor;
import org.apache.kafka.clients.admin.NewTopic;
import org.apache.kafka.common.serialization.StringDeserializer;
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@rafael-as-martins
rafael-as-martins / application.yml
Created April 11, 2021 17:47
Consumer application yml
spring:
kafka:
consumer:
# Specifies the name of the consumer group a Kafka consumer belongs to
group-id: topic-loggers
# Kafka server location. By accessing the localhost, we're acessing the
# kafka within the docker container running on port 9002
bootstrap-servers: localhost:9092
server:
package com.medium.kafka.controller;
import com.medium.kafka.ProducerApplicationProperties;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
package com.medium.kafka.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class CachedEntity {
private int entityId;
@rafael-as-martins
rafael-as-martins / ProducerConfiguration.java
Created April 11, 2021 17:07
ProducerConfiguration class
package com.medium.kafka.config;
import com.medium.kafka.ProducerApplicationProperties;
import lombok.RequiredArgsConstructor;
import org.apache.kafka.clients.admin.NewTopic;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.serialization.ByteArrayDeserializer;
import org.apache.kafka.common.serialization.StringDeserializer;
import org.apache.kafka.common.serialization.StringSerializer;
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
@rafael-as-martins
rafael-as-martins / ProducerApplicationProperties.java
Created April 11, 2021 17:05
ProducerApplicationProperties class
package com.medium.kafka;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@rafael-as-martins
rafael-as-martins / build.gradle
Created April 11, 2021 17:00
Producer dependencies
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.medium.kafka'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
@rafael-as-martins
rafael-as-martins / application.yml
Created April 11, 2021 16:57
Producer application.yml
spring:
kafka:
# Kafka server location. By accessing the localhost, we're acessing the
# kafka within the docker container running on port 9002
bootstrap-servers: localhost:9092
server:
#Port where our producer application will be running
port: 8002
@rafael-as-martins
rafael-as-martins / docker-compose.yml.bash
Created April 11, 2021 16:46
Docker compose Run Command
docker-compose run