Trying to user axon-kafka, producer part works perferctly fine. Not able to get consumer working. Application starts, however does not connect with kafka and does not consume events …
build.gradle
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
bootJar {
layered {
enabled = true
}
}
ext {
springBootVersion = '2.4.4'
swaggerVersion = '3.0.0'
axonVersion = '4.5'
lombokVersion='1.18.12'
axonMongo = '4.4'
kafkaVersion = '2.3.0'
}
allprojects {
repositories {
mavenLocal()
mavenCentral()
}
}
subprojects {
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'eclipse'
apply plugin: 'idea'
group = 'com.techm.bm.ws.integration'
version = '0.0.1-SNAPSHOT'
dependencies {
// Boot Starter
implementation 'org.springframework.boot:spring-boot-starter-web'
//Lombok
implementation "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
// logback
implementation group:'net.logstash.logback',name: 'logstash-logback-encoder', version: '6.4'
// bean-utils
implementation group: 'commons-beanutils', name: 'commons-beanutils', version: "1.9.4"
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${springBootVersion}")
}
}
}
project(':events') {
bootJar {
enabled = false
}
jar {
enabled = true
}
dependencies {}
}
project(':command') {
apply plugin: 'org.springframework.boot'
dependencies {
//Project dependencies
implementation project(':events')
// logback
implementation group:'net.logstash.logback',name: 'logstash-logback-encoder', version: '6.4'
// Axon
implementation("org.axonframework:axon-spring-boot-starter:${axonVersion}")
// Database
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
// kafka
implementation group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaVersion}"
implementation group: 'org.axonframework.extensions.kafka', name: 'axon-kafka-spring-boot-starter', version: "${axonVersion}"
// Swagger
implementation group: 'io.springfox', name: 'springfox-swagger2', version: "${swaggerVersion}"
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: "${swaggerVersion}"
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: "${swaggerVersion}"
}
}
project(':query') {
apply plugin: 'org.springframework.boot'
dependencies {
//Project dependencies
implementation project(':events')
// Mongodb for query
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
// logback
implementation group:'net.logstash.logback',name: 'logstash-logback-encoder', version: '6.4'
// Axon
implementation( "org.axonframework:axon-spring-boot-starter:${axonVersion}" )
implementation group: 'org.axonframework.extensions.mongo', name: 'axon-mongo', version: "${axonMongo}"
// Swagger
implementation group: 'io.springfox', name: 'springfox-swagger2', version: "${swaggerVersion}"
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: "${swaggerVersion}"
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: "${swaggerVersion}"
// kafka
implementation group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaVersion}"
implementation group: 'org.axonframework.extensions.kafka', name: 'axon-kafka-spring-boot-starter', version: "${axonVersion}"
}
}
project(':event-processor') {
apply plugin: 'org.springframework.boot'
dependencies {
// Project dependencies
implementation project(':events')
// Axon
implementation( "org.axonframework:axon-spring-boot-starter:${axonVersion}" )
// kafka
implementation group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaVersion}"
implementation group: 'org.axonframework.extensions.kafka', name: 'axon-kafka-spring-boot-starter', version: "${axonVersion}"
}
}
application.yaml
spring:
application:
name: Event processor
data:
mongodb:
uri: mongodb://localhost:27017/events
axon:
axonserver:
enabled: false
kafka:
bootstrap-servers: localhost:9092
client-id: order-info-consumer
default-topic: order_command_topic
properties:
security.protocol: PLAINTEXT
fetcher:
poll-timeout: 3000
consumer:
enable-auto-commit: true
auto-commit-interval: 3000
event-processor-mode: tracking
And if I make change to the axon-kafka extension back to 4.0,RC2 and use eventhandling
configuration construct, it works fine…
// kafka
implementation group: 'org.apache.kafka', name: 'kafka-clients', version: "2.3.0"
implementation group: 'org.axonframework.extensions.kafka', name: 'axon-kafka-spring-boot-starter', version: '4.0-RC2'
axon:
axonserver:
enabled: false
kafka:
default-topic: order_command_topic
consumer:
group-id: kafka-group
bootstrap-servers: localhost:9092
eventhandling:
processors:
order-info-processor:
mode: tracking
source: kafkaMessageSource