日志记录提交
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package com.baiyue.audit.mq;
|
||||
|
||||
import com.baiyue.audit.dto.AuditIngestRequest;
|
||||
import com.baiyue.audit.service.AuditIngestService;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||
import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/** RocketMQ 审计事件消费者;数据库 event_id 唯一键保证重复消息安全。 */
|
||||
@Component
|
||||
@ConditionalOnProperty(prefix = "baiyue.audit.rocketmq", name = "consumer-enabled", havingValue = "true")
|
||||
@RocketMQMessageListener(
|
||||
topic = "${baiyue.audit.rocketmq.topic}",
|
||||
selectorExpression = "AUDIT",
|
||||
consumerGroup = "${baiyue.audit.rocketmq.consumer-group}")
|
||||
public class AuditRocketMqConsumer implements RocketMQListener<String> {
|
||||
@Resource
|
||||
private ObjectMapper json;
|
||||
@Resource
|
||||
private AuditIngestService service;
|
||||
|
||||
@Override
|
||||
public void onMessage(String payload) {
|
||||
try {
|
||||
service.ingest(json.readValue(payload, AuditIngestRequest.class));
|
||||
} catch (JsonProcessingException exception) {
|
||||
throw new IllegalArgumentException("审计消息格式无效", exception);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user