|
|
@@ -50,6 +50,7 @@ public class RabbitConsumer implements ChannelAwareMessageListener {
|
|
|
String ops = mqMessage.getOps();
|
|
|
String payload = mqMessage.getPayload();
|
|
|
|
|
|
+ // TODO 使用 machineId 作为 routeKey 来确定 dagent 节点
|
|
|
if (!machineId.equals(Machine.machineId()) || sendTime < startTime) {
|
|
|
log.info("忽略不是发送到本机或 dagent 启动前发送到 MQ 中的所有消息...");
|
|
|
return;
|
|
|
@@ -63,6 +64,7 @@ public class RabbitConsumer implements ChannelAwareMessageListener {
|
|
|
rpcReply(messageProperties, rpcResult);
|
|
|
} else {
|
|
|
machineMessageDispatcher.dispatch(ops, payload);
|
|
|
+ channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
|
|
|
}
|
|
|
break;
|
|
|
case appType:
|
|
|
@@ -71,11 +73,11 @@ public class RabbitConsumer implements ChannelAwareMessageListener {
|
|
|
rpcReply(messageProperties, rpcResult);
|
|
|
} else {
|
|
|
appMessageDispatcher.dispatch(ops, payload);
|
|
|
+ channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
}
|
|
|
- channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
@@ -83,12 +85,14 @@ public class RabbitConsumer implements ChannelAwareMessageListener {
|
|
|
|
|
|
/**
|
|
|
* RPC 调用响应
|
|
|
+ * RPC 调用不需要返回 ACK
|
|
|
*
|
|
|
* @param
|
|
|
* @return
|
|
|
* @date 2021-02-22 下午5:43
|
|
|
*/
|
|
|
private void rpcReply(MessageProperties messageProperties, RpcResult result) {
|
|
|
+ log.info("RPC 调用完成,返回结果...");
|
|
|
String replyTo = messageProperties.getReplyTo();
|
|
|
String correlationId = messageProperties.getCorrelationId();
|
|
|
rabbitTemplate.convertAndSend(replyTo, JsonConverter.objectToJson(result), message -> {
|