send message with header

This commit is contained in:
zph
2023-07-18 11:50:23 +08:00
committed by zengpenghui
parent 93c1d3cd9d
commit b27db32ee2
7 changed files with 114 additions and 42 deletions

View File

@@ -1,5 +1,6 @@
package com.xuxd.kafka.console.beans;
import java.util.List;
import lombok.Data;
/**
@@ -22,4 +23,13 @@ public class SendMessage {
private int num;
private long offset;
private List<Header> headers;
@Data
public static class Header{
private String headerKey;
private String headerValue;
}
}

View File

@@ -56,6 +56,13 @@ public class MessageController {
return messageService.send(message);
}
@PostMapping("/sendWithHeader")
@ControllerLog("在线发送消息")
@Permission("message:send")
public Object sendWithHeader(@RequestBody SendMessage message) {
return messageService.sendWithHeader(message);
}
@ControllerLog("重新发送消息")
@Permission("message:resend")
@PostMapping("/resend")

View File

@@ -24,6 +24,8 @@ public interface MessageService {
ResponseData send(SendMessage message);
ResponseData sendWithHeader(SendMessage message);
ResponseData resend(SendMessage message);
ResponseData delete(List<QueryMessage> messages);

View File

@@ -228,6 +228,14 @@ public class MessageServiceImpl implements MessageService, ApplicationContextAwa
return ResponseData.create().success();
}
@Override public ResponseData sendWithHeader(SendMessage message) {
String[] headerKeys= message.getHeaders().stream().map(SendMessage.Header::getHeaderKey).toArray(String[]::new);
String[] headerValues= message.getHeaders().stream().map(SendMessage.Header::getHeaderValue).toArray(String[]::new);
log.info("send with header:keys{},values{}",headerKeys, headerValues);
messageConsole.send(message.getTopic(), message.getPartition(), message.getKey(), message.getBody(), message.getNum(), headerKeys, headerValues);
return ResponseData.create().success();
}
@Override public ResponseData resend(SendMessage message) {
TopicPartition partition = new TopicPartition(message.getTopic(), message.getPartition());
Map<TopicPartition, Object> offsetTable = new HashMap<>(1, 1.0f);