void touch(int brokerId, boolean fenced, long metadataOffset) {
        BrokerHeartbeatState broker = heartbeatStateOrThrow(brokerId);
        // Remove the broker from the unfenced list and/or the active set. Its
        // position in either of those data structures depends on values we are
        // changing here. We will re-add it if necessary at the end of this function.
        untrack(broker);
        broker.lastContactNs = time.nanoseconds();
        broker.metadataOffset = metadataOffset;
        if (fenced) {
            // If a broker is fenced, it leaves controlled shutdown.  On its next heartbeat,
            // it will shut down immediately.
            broker.controlledShutdownOffset = -1;
        } else {
            unfenced.add(broker);
            if (!broker.shuttingDown()) {
                active.add(broker);
            }
            // AutoMQ inject start
            overloadCircuitBreaker.success();
            // AutoMQ inject end
        }
    }
Update broker state, including lastContactNs.

@param brokerId          The broker ID.
@param fenced            True only if the broker is currently fenced.
@param metadataOffset    The latest metadata offset of the broker.
@throws IllegalStateException if the broker is not registered.
metadata/src/main/java/org/apache/kafka/controller/BrokerHeartbeatManager.java