use of com.bakdata.conquery.io.mina.NetworkSession in project conquery by bakdata.
the class ManagerNode method messageReceived.
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
ConqueryMDC.setLocation("ManagerNode[" + session.getLocalAddress().toString() + "]");
if (message instanceof MessageToManagerNode) {
MessageToManagerNode mrm = (MessageToManagerNode) message;
log.trace("ManagerNode received {} from {}", message.getClass().getSimpleName(), session.getRemoteAddress());
ReactingJob<MessageToManagerNode, NetworkMessageContext.ManagerNodeNetworkContext> job = new ReactingJob<>(mrm, new NetworkMessageContext.ManagerNodeNetworkContext(jobManager, new NetworkSession(session), datasetRegistry, config.getCluster().getBackpressure()));
// TODO: 01.07.2020 FK: distribute messages/jobs to their respective JobManagers (if they have one)
if (mrm.isSlowMessage()) {
((SlowMessage) mrm).setProgressReporter(job.getProgressReporter());
jobManager.addSlowJob(job);
} else {
jobManager.addFastJob(job);
}
} else {
log.error("Unknown message type {} in {}", message.getClass(), message);
}
}
use of com.bakdata.conquery.io.mina.NetworkSession in project conquery by bakdata.
the class ShardNode method sessionOpened.
@Override
public void sessionOpened(IoSession session) throws Exception {
setLocation(session);
NetworkSession networkSession = new NetworkSession(session);
context = new NetworkMessageContext.ShardNodeNetworkContext(jobManager, networkSession, workers, config, validator);
log.info("Connected to ManagerNode @ {}", session.getRemoteAddress());
// Authenticate with ManagerNode
context.send(new AddShardNode());
for (Worker w : workers.getWorkers().values()) {
w.setSession(new NetworkSession(session));
WorkerInformation info = w.getInfo();
log.info("Sending worker identity '{}'", info.getName());
networkSession.send(new RegisterWorker(info));
}
}
use of com.bakdata.conquery.io.mina.NetworkSession in project conquery by bakdata.
the class AddShardNode method react.
@Override
public void react(NetworkMessageContext.ManagerNodeNetworkContext context) throws Exception {
final ShardNodeInformation nodeInformation = new ShardNodeInformation(new NetworkSession(context.getSession().getSession()), context.getBackpressure());
context.getNamespaces().getShardNodes().put(context.getRemoteAddress(), nodeInformation);
log.info("ShardNode `{}` registered.", context.getRemoteAddress());
}
Aggregations