projects
/
demos
/
kafka
/
training
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Die Implementierung speichert Zustand & Offsets vor _jedem_ `poll()`
[demos/kafka/training]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
EndlessConsumer.java
diff --git
a/src/main/java/de/juplo/kafka/EndlessConsumer.java
b/src/main/java/de/juplo/kafka/EndlessConsumer.java
index
58557f2
..
92802b9
100644
(file)
--- a/
src/main/java/de/juplo/kafka/EndlessConsumer.java
+++ b/
src/main/java/de/juplo/kafka/EndlessConsumer.java
@@
-25,8
+25,8
@@
public class EndlessConsumer<K, V> implements Runnable
private final String id;
private final String topic;
private final Consumer<K, V> consumer;
private final String id;
private final String topic;
private final Consumer<K, V> consumer;
- private final
PollIntervalAwareConsumerRebalanceListener pollIntervalAwareR
ebalanceListener;
- private final RecordHandler<K, V>
h
andler;
+ private final
RebalanceListener r
ebalanceListener;
+ private final RecordHandler<K, V>
recordH
andler;
private final Lock lock = new ReentrantLock();
private final Condition condition = lock.newCondition();
private final Lock lock = new ReentrantLock();
private final Condition condition = lock.newCondition();
@@
-42,7
+42,7
@@
public class EndlessConsumer<K, V> implements Runnable
try
{
log.info("{} - Subscribing to topic {}", id, topic);
try
{
log.info("{} - Subscribing to topic {}", id, topic);
- consumer.subscribe(Arrays.asList(topic),
pollIntervalAwareR
ebalanceListener);
+ consumer.subscribe(Arrays.asList(topic),
r
ebalanceListener);
while (true)
{
while (true)
{
@@
-63,17
+63,18
@@
public class EndlessConsumer<K, V> implements Runnable
record.value()
);
record.value()
);
-
h
andler.accept(record);
+
recordH
andler.accept(record);
consumed++;
}
consumed++;
}
-
pollIntervalAwareR
ebalanceListener.beforeNextPoll();
+
r
ebalanceListener.beforeNextPoll();
}
}
catch(WakeupException e)
{
log.info("{} - RIIING! Request to stop consumption - commiting current offsets!", id);
}
}
catch(WakeupException e)
{
log.info("{} - RIIING! Request to stop consumption - commiting current offsets!", id);
+ consumer.commitSync();
shutdown();
}
catch(RecordDeserializationException e)
shutdown();
}
catch(RecordDeserializationException e)
@@
-87,6
+88,7
@@
public class EndlessConsumer<K, V> implements Runnable
offset,
e.getCause().toString());
offset,
e.getCause().toString());
+ consumer.commitSync();
shutdown(e);
}
catch(Exception e)
shutdown(e);
}
catch(Exception e)