|
@@ -218,6 +218,18 @@ public final class KafkaContextHolder {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送事务消息
|
|
|
+ *
|
|
|
+ * @param topic 消息主题
|
|
|
+ * @param payload 消息内容
|
|
|
+ * @param callback 本地事务回调函数
|
|
|
+ * @param <V> 消息载体类型
|
|
|
+ */
|
|
|
+ public static <V> void send(@NonNull String topic, @NonNull V payload, @NonNull Consumer<String> callback) {
|
|
|
+ send(topic, payload, null, null, callback);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 发送事务消息
|
|
|
*
|
|
@@ -230,6 +242,21 @@ public final class KafkaContextHolder {
|
|
|
send(topic, payload, null, null, callback);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送事务消息
|
|
|
+ *
|
|
|
+ * @param topic 消息主题
|
|
|
+ * @param payload 消息内容
|
|
|
+ * @param ordering 顺序消息标识
|
|
|
+ * @param callback 本地事务回调函数
|
|
|
+ * @param <K> 顺序标识类型
|
|
|
+ * @param <V> 消息载体类型
|
|
|
+ */
|
|
|
+ public static <K, V> void send(@NonNull String topic, @NonNull V payload, K ordering,
|
|
|
+ @NonNull Consumer<String> callback) {
|
|
|
+ send(topic, payload, ordering, null, callback);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 发送事务消息
|
|
|
*
|
|
@@ -245,6 +272,25 @@ public final class KafkaContextHolder {
|
|
|
send(topic, payload, ordering, null, callback);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送事务消息
|
|
|
+ *
|
|
|
+ * @param topic 消息主题
|
|
|
+ * @param payload 消息内容
|
|
|
+ * @param ordering 顺序消息标识
|
|
|
+ * @param partition 指定分区
|
|
|
+ * @param callback 本地事务回调函数
|
|
|
+ * @param <K> 顺序标识类型
|
|
|
+ * @param <V> 消息载体类型
|
|
|
+ */
|
|
|
+ public static <K, V> void send(@NonNull String topic, @NonNull V payload, K ordering, Integer partition,
|
|
|
+ @NonNull Consumer<String> callback) {
|
|
|
+ send(topic, payload, ordering, partition, id -> {
|
|
|
+ callback.accept(id);
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 发送事务消息
|
|
|
*
|