Search in sources :

Example 1 with MessageReader

use of org.apache.ignite.plugin.extensions.communication.MessageReader in project ignite by apache.

the class GridDirectParser method decode.

/**
 * {@inheritDoc}
 */
@Nullable
@Override
public Object decode(GridNioSession ses, ByteBuffer buf) throws IOException, IgniteCheckedException {
    MessageReader reader = ses.meta(READER_META_KEY);
    if (reader == null)
        ses.addMeta(READER_META_KEY, reader = readerFactory.reader(ses, msgFactory));
    Message msg = ses.removeMeta(MSG_META_KEY);
    try {
        if (msg == null && buf.remaining() >= Message.DIRECT_TYPE_SIZE) {
            byte b0 = buf.get();
            byte b1 = buf.get();
            msg = msgFactory.create(makeMessageType(b0, b1));
        }
        boolean finished = false;
        if (msg != null && buf.hasRemaining()) {
            if (reader != null)
                reader.setCurrentReadClass(msg.getClass());
            finished = msg.readFrom(buf, reader);
        }
        if (finished) {
            if (reader != null)
                reader.reset();
            return msg;
        } else {
            ses.addMeta(MSG_META_KEY, msg);
            return null;
        }
    } catch (Throwable e) {
        U.error(log, "Failed to read message [msg=" + msg + ", buf=" + buf + ", reader=" + reader + ", ses=" + ses + "]", e);
        throw e;
    }
}
Also used : Message(org.apache.ignite.plugin.extensions.communication.Message) MessageReader(org.apache.ignite.plugin.extensions.communication.MessageReader) Nullable(org.jetbrains.annotations.Nullable)

Example 2 with MessageReader

use of org.apache.ignite.plugin.extensions.communication.MessageReader in project ignite by apache.

the class GridIoManager method start.

/** {@inheritDoc} */
@SuppressWarnings("deprecation")
@Override
public void start(boolean activeOnStart) throws IgniteCheckedException {
    assertParameter(discoDelay > 0, "discoveryStartupDelay > 0");
    startSpi();
    getSpi().setListener(commLsnr = new CommunicationListener<Serializable>() {

        @Override
        public void onMessage(UUID nodeId, Serializable msg, IgniteRunnable msgC) {
            try {
                onMessage0(nodeId, (GridIoMessage) msg, msgC);
            } catch (ClassCastException ignored) {
                U.error(log, "Communication manager received message of unknown type (will ignore): " + msg.getClass().getName() + ". Most likely GridCommunicationSpi is being used directly, " + "which is illegal - make sure to send messages only via GridProjection API.");
            }
        }

        @Override
        public void onDisconnected(UUID nodeId) {
            for (GridDisconnectListener lsnr : disconnectLsnrs) lsnr.onNodeDisconnected(nodeId);
        }
    });
    ctx.addNodeAttribute(DIRECT_PROTO_VER_ATTR, DIRECT_PROTO_VER);
    MessageFormatter[] formatterExt = ctx.plugins().extensions(MessageFormatter.class);
    if (formatterExt != null && formatterExt.length > 0) {
        if (formatterExt.length > 1)
            throw new IgniteCheckedException("More than one MessageFormatter extension is defined. Check your " + "plugins configuration and make sure that only one of them provides custom message format.");
        formatter = formatterExt[0];
    } else {
        formatter = new MessageFormatter() {

            @Override
            public MessageWriter writer(UUID rmtNodeId) throws IgniteCheckedException {
                assert rmtNodeId != null;
                return new DirectMessageWriter(U.directProtocolVersion(ctx, rmtNodeId));
            }

            @Override
            public MessageReader reader(UUID rmtNodeId, MessageFactory msgFactory) throws IgniteCheckedException {
                assert rmtNodeId != null;
                return new DirectMessageReader(msgFactory, U.directProtocolVersion(ctx, rmtNodeId));
            }
        };
    }
    MessageFactory[] msgs = ctx.plugins().extensions(MessageFactory.class);
    if (msgs == null)
        msgs = EMPTY;
    List<MessageFactory> compMsgs = new ArrayList<>();
    for (IgniteComponentType compType : IgniteComponentType.values()) {
        MessageFactory f = compType.messageFactory();
        if (f != null)
            compMsgs.add(f);
    }
    if (!compMsgs.isEmpty())
        msgs = F.concat(msgs, compMsgs.toArray(new MessageFactory[compMsgs.size()]));
    msgFactory = new GridIoMessageFactory(msgs);
    if (log.isDebugEnabled())
        log.debug(startInfo());
    addMessageListener(GridTopic.TOPIC_IO_TEST, new GridMessageListener() {

        @Override
        public void onMessage(UUID nodeId, Object msg) {
            ClusterNode node = ctx.discovery().node(nodeId);
            if (node == null)
                return;
            IgniteIoTestMessage msg0 = (IgniteIoTestMessage) msg;
            msg0.senderNodeId(nodeId);
            if (msg0.request()) {
                IgniteIoTestMessage res = new IgniteIoTestMessage(msg0.id(), false, null);
                res.flags(msg0.flags());
                res.onRequestProcessed();
                res.copyDataFromRequest(msg0);
                try {
                    sendToGridTopic(node, GridTopic.TOPIC_IO_TEST, res, GridIoPolicy.SYSTEM_POOL);
                } catch (IgniteCheckedException e) {
                    U.error(log, "Failed to send IO test response [msg=" + msg0 + "]", e);
                }
            } else {
                IoTestFuture fut = ioTestMap().get(msg0.id());
                msg0.onResponseProcessed();
                if (fut == null)
                    U.warn(log, "Failed to find IO test future [msg=" + msg0 + ']');
                else
                    fut.onResponse(msg0);
            }
        }
    });
}
Also used : Serializable(java.io.Serializable) DirectMessageReader(org.apache.ignite.internal.direct.DirectMessageReader) ArrayList(java.util.ArrayList) DirectMessageReader(org.apache.ignite.internal.direct.DirectMessageReader) MessageReader(org.apache.ignite.plugin.extensions.communication.MessageReader) MessageFormatter(org.apache.ignite.plugin.extensions.communication.MessageFormatter) IgniteRunnable(org.apache.ignite.lang.IgniteRunnable) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) IgniteComponentType(org.apache.ignite.internal.IgniteComponentType) UUID(java.util.UUID) ClusterNode(org.apache.ignite.cluster.ClusterNode) MessageFactory(org.apache.ignite.plugin.extensions.communication.MessageFactory) CommunicationListener(org.apache.ignite.spi.communication.CommunicationListener) DirectMessageWriter(org.apache.ignite.internal.direct.DirectMessageWriter) DirectMessageWriter(org.apache.ignite.internal.direct.DirectMessageWriter) MessageWriter(org.apache.ignite.plugin.extensions.communication.MessageWriter) GridTimeoutObject(org.apache.ignite.internal.processors.timeout.GridTimeoutObject)

Example 3 with MessageReader

use of org.apache.ignite.plugin.extensions.communication.MessageReader in project ignite by apache.

the class GridIoManager method start.

/**
 * {@inheritDoc}
 */
@Override
public void start() throws IgniteCheckedException {
    ctx.addNodeAttribute(DIRECT_PROTO_VER_ATTR, DIRECT_PROTO_VER);
    MessageFormatter[] formatterExt = ctx.plugins().extensions(MessageFormatter.class);
    if (formatterExt != null && formatterExt.length > 0) {
        if (formatterExt.length > 1)
            throw new IgniteCheckedException("More than one MessageFormatter extension is defined. Check your " + "plugins configuration and make sure that only one of them provides custom message format.");
        formatter = formatterExt[0];
    } else {
        formatter = new MessageFormatter() {

            @Override
            public MessageWriter writer(UUID rmtNodeId) throws IgniteCheckedException {
                assert rmtNodeId != null;
                return new DirectMessageWriter(U.directProtocolVersion(ctx, rmtNodeId));
            }

            @Override
            public MessageReader reader(UUID rmtNodeId, MessageFactory msgFactory) throws IgniteCheckedException {
                return new DirectMessageReader(msgFactory, rmtNodeId != null ? U.directProtocolVersion(ctx, rmtNodeId) : DIRECT_PROTO_VER);
            }
        };
    }
    MessageFactory[] msgs = ctx.plugins().extensions(MessageFactory.class);
    if (msgs == null)
        msgs = EMPTY;
    List<MessageFactory> compMsgs = new ArrayList<>();
    compMsgs.add(new GridIoMessageFactory());
    for (IgniteComponentType compType : IgniteComponentType.values()) {
        MessageFactory f = compType.messageFactory();
        if (f != null)
            compMsgs.add(f);
    }
    if (!compMsgs.isEmpty())
        msgs = F.concat(msgs, compMsgs.toArray(new MessageFactory[compMsgs.size()]));
    msgFactory = new IgniteMessageFactoryImpl(msgs);
    CommunicationSpi<Serializable> spi = getSpi();
    if ((CommunicationSpi<?>) spi instanceof TcpCommunicationSpi)
        getTcpCommunicationSpi().setConnectionRequestor(invConnHandler);
    startSpi();
    MetricRegistry ioMetric = ctx.metric().registry(COMM_METRICS);
    ioMetric.register(OUTBOUND_MSG_QUEUE_CNT, spi::getOutboundMessagesQueueSize, "Outbound messages queue size.");
    ioMetric.register(SENT_MSG_CNT, spi::getSentMessagesCount, "Sent messages count.");
    ioMetric.register(SENT_BYTES_CNT, spi::getSentBytesCount, "Sent bytes count.");
    ioMetric.register(RCVD_MSGS_CNT, spi::getReceivedMessagesCount, "Received messages count.");
    ioMetric.register(RCVD_BYTES_CNT, spi::getReceivedBytesCount, "Received bytes count.");
    getSpi().setListener(commLsnr = new CommunicationListenerEx<Serializable>() {

        @Override
        public void onMessage(UUID nodeId, Serializable msg, IgniteRunnable msgC) {
            try {
                onMessage0(nodeId, (GridIoMessage) msg, msgC);
            } catch (ClassCastException ignored) {
                U.error(log, "Communication manager received message of unknown type (will ignore): " + msg.getClass().getName() + ". Most likely GridCommunicationSpi is being used directly, " + "which is illegal - make sure to send messages only via GridProjection API.");
            }
        }

        @Override
        public void onDisconnected(UUID nodeId) {
            for (GridDisconnectListener lsnr : disconnectLsnrs) lsnr.onNodeDisconnected(nodeId);
        }

        @Override
        public void onChannelOpened(UUID rmtNodeId, Serializable initMsg, Channel channel) {
            try {
                onChannelOpened0(rmtNodeId, (GridIoMessage) initMsg, channel);
            } catch (ClassCastException ignored) {
                U.error(log, "Communication manager received message of unknown type (will ignore): " + initMsg.getClass().getName() + ". Most likely GridCommunicationSpi is being used directly, " + "which is illegal - make sure to send messages only via GridProjection API.");
            }
        }
    });
    if (log.isDebugEnabled())
        log.debug(startInfo());
    addMessageListener(GridTopic.TOPIC_IO_TEST, new GridMessageListener() {

        @Override
        public void onMessage(UUID nodeId, Object msg, byte plc) {
            ClusterNode node = ctx.discovery().node(nodeId);
            if (node == null)
                return;
            IgniteIoTestMessage msg0 = (IgniteIoTestMessage) msg;
            msg0.senderNodeId(nodeId);
            if (msg0.request()) {
                IgniteIoTestMessage res = new IgniteIoTestMessage(msg0.id(), false, null);
                res.flags(msg0.flags());
                res.onRequestProcessed();
                res.copyDataFromRequest(msg0);
                try {
                    sendToGridTopic(node, GridTopic.TOPIC_IO_TEST, res, GridIoPolicy.SYSTEM_POOL);
                } catch (IgniteCheckedException e) {
                    U.error(log, "Failed to send IO test response [msg=" + msg0 + "]", e);
                }
            } else {
                IoTestFuture fut = ioTestMap().get(msg0.id());
                msg0.onResponseProcessed();
                if (fut == null)
                    U.warn(log, "Failed to find IO test future [msg=" + msg0 + ']');
                else
                    fut.onResponse(msg0);
            }
        }
    });
}
Also used : Serializable(java.io.Serializable) DirectMessageReader(org.apache.ignite.internal.direct.DirectMessageReader) ArrayList(java.util.ArrayList) DirectMessageReader(org.apache.ignite.internal.direct.DirectMessageReader) MessageReader(org.apache.ignite.plugin.extensions.communication.MessageReader) MessageFormatter(org.apache.ignite.plugin.extensions.communication.MessageFormatter) TcpCommunicationSpi(org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi) IgniteRunnable(org.apache.ignite.lang.IgniteRunnable) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) IgniteComponentType(org.apache.ignite.internal.IgniteComponentType) UUID(java.util.UUID) ClusterNode(org.apache.ignite.cluster.ClusterNode) CommunicationListenerEx(org.apache.ignite.spi.communication.tcp.internal.CommunicationListenerEx) MessageFactory(org.apache.ignite.plugin.extensions.communication.MessageFactory) MetricRegistry(org.apache.ignite.internal.processors.metric.MetricRegistry) Channel(java.nio.channels.Channel) WritableByteChannel(java.nio.channels.WritableByteChannel) SocketChannel(java.nio.channels.SocketChannel) ReadableByteChannel(java.nio.channels.ReadableByteChannel) FileChannel(java.nio.channels.FileChannel) DirectMessageWriter(org.apache.ignite.internal.direct.DirectMessageWriter) DirectMessageWriter(org.apache.ignite.internal.direct.DirectMessageWriter) MessageWriter(org.apache.ignite.plugin.extensions.communication.MessageWriter) GridTimeoutObject(org.apache.ignite.internal.processors.timeout.GridTimeoutObject)

Example 4 with MessageReader

use of org.apache.ignite.plugin.extensions.communication.MessageReader in project ignite by apache.

the class GridNioServerWrapper method resetNioServer.

/**
 * Recreates tpcSrvr socket instance.
 *
 * @return Server instance.
 * @throws IgniteCheckedException Thrown if it's not possible to create server.
 */
public GridNioServer<Message> resetNioServer() throws IgniteCheckedException {
    if (cfg.boundTcpPort() >= 0)
        throw new IgniteCheckedException("Tcp NIO server was already created on port " + cfg.boundTcpPort());
    IgniteCheckedException lastEx = null;
    // If configured TCP port is busy, find first available in range.
    int lastPort = cfg.localPort() == -1 ? -1 : cfg.localPortRange() == 0 ? cfg.localPort() : cfg.localPort() + cfg.localPortRange() - 1;
    for (int port = cfg.localPort(); port <= lastPort; port++) {
        try {
            MessageFactory msgFactory = new MessageFactory() {

                private MessageFactory impl;

                @Nullable
                @Override
                public Message create(short type) {
                    if (impl == null)
                        impl = stateProvider.getSpiContext().messageFactory();
                    assert impl != null;
                    return impl.create(type);
                }
            };
            GridNioMessageReaderFactory readerFactory = new GridNioMessageReaderFactory() {

                private IgniteSpiContext context;

                private MessageFormatter formatter;

                @Override
                public MessageReader reader(GridNioSession ses, MessageFactory msgFactory) throws IgniteCheckedException {
                    final IgniteSpiContext ctx = stateProvider.getSpiContextWithoutInitialLatch();
                    if (formatter == null || context != ctx) {
                        context = ctx;
                        formatter = context.messageFormatter();
                    }
                    assert formatter != null;
                    ConnectionKey key = ses.meta(CONN_IDX_META);
                    return key != null ? formatter.reader(key.nodeId(), msgFactory) : null;
                }
            };
            GridNioMessageWriterFactory writerFactory = new GridNioMessageWriterFactory() {

                private IgniteSpiContext context;

                private MessageFormatter formatter;

                @Override
                public MessageWriter writer(GridNioSession ses) throws IgniteCheckedException {
                    final IgniteSpiContext ctx = stateProvider.getSpiContextWithoutInitialLatch();
                    if (formatter == null || context != ctx) {
                        context = ctx;
                        formatter = context.messageFormatter();
                    }
                    assert formatter != null;
                    ConnectionKey key = ses.meta(CONN_IDX_META);
                    return key != null ? formatter.writer(key.nodeId()) : null;
                }
            };
            GridDirectParser parser = new GridDirectParser(log.getLogger(GridDirectParser.class), msgFactory, readerFactory);
            IgnitePredicate<Message> skipRecoveryPred = msg -> msg instanceof RecoveryLastReceivedMessage;
            boolean clientMode = Boolean.TRUE.equals(igniteCfg.isClientMode());
            IgniteBiInClosure<GridNioSession, Integer> queueSizeMonitor = !clientMode && cfg.slowClientQueueLimit() > 0 ? this::checkClientQueueSize : null;
            List<GridNioFilter> filters = new ArrayList<>();
            if (tracing instanceof GridTracingManager && ((GridManager) tracing).enabled())
                filters.add(new GridNioTracerFilter(log, tracing));
            filters.add(new GridNioCodecFilter(parser, log, true));
            filters.add(new GridConnectionBytesVerifyFilter(log));
            if (stateProvider.isSslEnabled()) {
                GridNioSslFilter sslFilter = new GridNioSslFilter(igniteCfg.getSslContextFactory().create(), true, ByteOrder.LITTLE_ENDIAN, log, metricMgr == null ? null : metricMgr.registry(COMMUNICATION_METRICS_GROUP_NAME));
                sslFilter.directMode(true);
                sslFilter.wantClientAuth(true);
                sslFilter.needClientAuth(true);
                filters.add(sslFilter);
            }
            GridNioServer.Builder<Message> builder = GridNioServer.<Message>builder().address(cfg.localHost()).port(port).listener(srvLsnr).logger(log).selectorCount(cfg.selectorsCount()).igniteInstanceName(igniteInstanceName).serverName("tcp-comm").tcpNoDelay(cfg.tcpNoDelay()).directBuffer(cfg.directBuffer()).byteOrder(ByteOrder.LITTLE_ENDIAN).socketSendBufferSize(cfg.socketSendBuffer()).socketReceiveBufferSize(cfg.socketReceiveBuffer()).sendQueueLimit(cfg.messageQueueLimit()).directMode(true).writeTimeout(cfg.socketWriteTimeout()).selectorSpins(cfg.selectorSpins()).filters(filters.toArray(new GridNioFilter[filters.size()])).writerFactory(writerFactory).skipRecoveryPredicate(skipRecoveryPred).messageQueueSizeListener(queueSizeMonitor).tracing(tracing).readWriteSelectorsAssign(cfg.usePairedConnections());
            if (metricMgr != null) {
                builder.workerListener(workersRegistry).metricRegistry(metricMgr.registry(COMMUNICATION_METRICS_GROUP_NAME));
            }
            GridNioServer<Message> srvr = builder.build();
            cfg.boundTcpPort(port);
            // Ack Port the TCP server was bound to.
            if (log.isInfoEnabled()) {
                log.info("Successfully bound communication NIO server to TCP port " + "[port=" + cfg.boundTcpPort() + ", locHost=" + cfg.localHost() + ", selectorsCnt=" + cfg.selectorsCount() + ", selectorSpins=" + srvr.selectorSpins() + ", pairedConn=" + cfg.usePairedConnections() + ']');
            }
            srvr.idleTimeout(cfg.idleConnectionTimeout());
            return srvr;
        } catch (IgniteCheckedException e) {
            if (X.hasCause(e, SSLException.class))
                throw new IgniteSpiException("Failed to create SSL context. SSL factory: " + igniteCfg.getSslContextFactory() + '.', e);
            lastEx = e;
            if (log.isDebugEnabled())
                log.debug("Failed to bind to local port (will try next port within range) [port=" + port + ", locHost=" + cfg.localHost() + ']');
            eRegistrySupplier.get().onException("Failed to bind to local port (will try next port within range) [port=" + port + ", locHost=" + cfg.localHost() + ']', e);
        }
    }
    // If free port wasn't found.
    throw new IgniteCheckedException("Failed to bind to any port within range [startPort=" + cfg.localPort() + ", portRange=" + cfg.localPortRange() + ", locHost=" + cfg.localHost() + ']', lastEx);
}
Also used : CommunicationTcpUtils.usePairedConnections(org.apache.ignite.spi.communication.tcp.internal.CommunicationTcpUtils.usePairedConnections) GridNioSession(org.apache.ignite.internal.util.nio.GridNioSession) GridFutureAdapter(org.apache.ignite.internal.util.future.GridFutureAdapter) GridConnectionBytesVerifyFilter(org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter) NEED_WAIT(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage.NEED_WAIT) ThrowableSupplier(org.apache.ignite.internal.util.function.ThrowableSupplier) GridNioSessionMetaKey(org.apache.ignite.internal.util.nio.GridNioSessionMetaKey) Executors.newSingleThreadScheduledExecutor(java.util.concurrent.Executors.newSingleThreadScheduledExecutor) Map(java.util.Map) GridTcpNioCommunicationClient(org.apache.ignite.internal.util.nio.GridTcpNioCommunicationClient) Channel(java.nio.channels.Channel) CommunicationTcpUtils.handshakeTimeoutException(org.apache.ignite.spi.communication.tcp.internal.CommunicationTcpUtils.handshakeTimeoutException) GridNioServer(org.apache.ignite.internal.util.nio.GridNioServer) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) Set(java.util.Set) RecoveryLastReceivedMessage(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage) COMMUNICATION_METRICS_GROUP_NAME(org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.COMMUNICATION_METRICS_GROUP_NAME) ByteOrder(java.nio.ByteOrder) ExponentialBackoffTimeoutStrategy(org.apache.ignite.spi.ExponentialBackoffTimeoutStrategy) SSLException(javax.net.ssl.SSLException) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) IgniteSpiOperationTimeoutException(org.apache.ignite.spi.IgniteSpiOperationTimeoutException) GridNioSslFilter(org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter) Message(org.apache.ignite.plugin.extensions.communication.Message) ALREADY_CONNECTED(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage.ALREADY_CONNECTED) IgniteSpiException(org.apache.ignite.spi.IgniteSpiException) GridSelectorNioSessionImpl(org.apache.ignite.internal.util.nio.GridSelectorNioSessionImpl) U(org.apache.ignite.internal.util.typedef.internal.U) IgniteLogger(org.apache.ignite.IgniteLogger) GridDirectParser(org.apache.ignite.internal.util.nio.GridDirectParser) Supplier(java.util.function.Supplier) GridNioMessageWriterFactory(org.apache.ignite.internal.util.nio.GridNioMessageWriterFactory) ArrayList(java.util.ArrayList) IgniteBiInClosure(org.apache.ignite.lang.IgniteBiInClosure) SocketException(java.net.SocketException) ClusterNode(org.apache.ignite.cluster.ClusterNode) SocketTimeoutException(java.net.SocketTimeoutException) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) CONN_IDX_META(org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.CONN_IDX_META) IgniteExceptionRegistry(org.apache.ignite.internal.util.IgniteExceptionRegistry) IOException(java.io.IOException) CommunicationTcpUtils.isRecoverableException(org.apache.ignite.spi.communication.tcp.internal.CommunicationTcpUtils.isRecoverableException) HandshakeMessage(org.apache.ignite.spi.communication.tcp.messages.HandshakeMessage) GridTracingManager(org.apache.ignite.internal.managers.tracing.GridTracingManager) CHANNEL_COMMUNICATION(org.apache.ignite.internal.IgniteFeatures.CHANNEL_COMMUNICATION) GridNioRecoveryDescriptor(org.apache.ignite.internal.util.nio.GridNioRecoveryDescriptor) IgniteInternalFuture(org.apache.ignite.internal.IgniteInternalFuture) CommunicationTcpUtils.nodeAddresses(org.apache.ignite.spi.communication.tcp.internal.CommunicationTcpUtils.nodeAddresses) SocketAddress(java.net.SocketAddress) GridNioCodecFilter(org.apache.ignite.internal.util.nio.GridNioCodecFilter) IgniteFeatures.nodeSupports(org.apache.ignite.internal.IgniteFeatures.nodeSupports) IgniteSystemProperties(org.apache.ignite.IgniteSystemProperties) SocketChannel(java.nio.channels.SocketChannel) GridNioTracerFilter(org.apache.ignite.internal.util.nio.GridNioTracerFilter) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) X(org.apache.ignite.internal.util.typedef.X) CONSISTENT_ID_META(org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.CONSISTENT_ID_META) GridConcurrentFactory(org.apache.ignite.internal.util.GridConcurrentFactory) GridSslMeta(org.apache.ignite.internal.util.nio.ssl.GridSslMeta) WorkersRegistry(org.apache.ignite.internal.worker.WorkersRegistry) MessageFormatter(org.apache.ignite.plugin.extensions.communication.MessageFormatter) IgniteThreadFactory(org.apache.ignite.thread.IgniteThreadFactory) NodeIdMessage(org.apache.ignite.spi.communication.tcp.messages.NodeIdMessage) IgniteDiscoveryThread(org.apache.ignite.spi.discovery.IgniteDiscoveryThread) SSL_META(org.apache.ignite.internal.util.nio.GridNioSessionMetaKey.SSL_META) Collection(java.util.Collection) UUID(java.util.UUID) InetSocketAddress(java.net.InetSocketAddress) AttributeNames(org.apache.ignite.spi.communication.tcp.AttributeNames) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) GridCommunicationClient(org.apache.ignite.internal.util.nio.GridCommunicationClient) TimeoutStrategy(org.apache.ignite.spi.TimeoutStrategy) NODE_STOPPING(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage.NODE_STOPPING) CommunicationListener(org.apache.ignite.spi.communication.CommunicationListener) Tracing(org.apache.ignite.internal.processors.tracing.Tracing) IgniteSpiContext(org.apache.ignite.spi.IgniteSpiContext) HashMap(java.util.HashMap) Function(java.util.function.Function) ConcurrentMap(java.util.concurrent.ConcurrentMap) SSLEngine(javax.net.ssl.SSLEngine) GridNioMessageReaderFactory(org.apache.ignite.internal.util.nio.GridNioMessageReaderFactory) HashSet(java.util.HashSet) IgnitePredicate(org.apache.ignite.lang.IgnitePredicate) MessageWriter(org.apache.ignite.plugin.extensions.communication.MessageWriter) ThrowableBiFunction(org.apache.ignite.internal.util.function.ThrowableBiFunction) MessageFactory(org.apache.ignite.plugin.extensions.communication.MessageFactory) IgniteTooManyOpenFilesException(org.apache.ignite.internal.IgniteTooManyOpenFilesException) GridManager(org.apache.ignite.internal.managers.GridManager) ClusterTopologyCheckedException(org.apache.ignite.internal.cluster.ClusterTopologyCheckedException) GridNioFilter(org.apache.ignite.internal.util.nio.GridNioFilter) MessageReader(org.apache.ignite.plugin.extensions.communication.MessageReader) TimeUnit(java.util.concurrent.TimeUnit) GridNioServerListener(org.apache.ignite.internal.util.nio.GridNioServerListener) GridMetricManager(org.apache.ignite.internal.processors.metric.GridMetricManager) UNKNOWN_NODE(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage.UNKNOWN_NODE) HandshakeMessage2(org.apache.ignite.spi.communication.tcp.messages.HandshakeMessage2) GridNioFilter(org.apache.ignite.internal.util.nio.GridNioFilter) IgniteSpiContext(org.apache.ignite.spi.IgniteSpiContext) GridNioSession(org.apache.ignite.internal.util.nio.GridNioSession) RecoveryLastReceivedMessage(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage) Message(org.apache.ignite.plugin.extensions.communication.Message) HandshakeMessage(org.apache.ignite.spi.communication.tcp.messages.HandshakeMessage) NodeIdMessage(org.apache.ignite.spi.communication.tcp.messages.NodeIdMessage) ArrayList(java.util.ArrayList) MessageFormatter(org.apache.ignite.plugin.extensions.communication.MessageFormatter) GridNioSslFilter(org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter) SSLException(javax.net.ssl.SSLException) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) GridDirectParser(org.apache.ignite.internal.util.nio.GridDirectParser) IgniteSpiException(org.apache.ignite.spi.IgniteSpiException) GridNioMessageWriterFactory(org.apache.ignite.internal.util.nio.GridNioMessageWriterFactory) RecoveryLastReceivedMessage(org.apache.ignite.spi.communication.tcp.messages.RecoveryLastReceivedMessage) MessageFactory(org.apache.ignite.plugin.extensions.communication.MessageFactory) GridNioTracerFilter(org.apache.ignite.internal.util.nio.GridNioTracerFilter) GridConnectionBytesVerifyFilter(org.apache.ignite.internal.util.nio.GridConnectionBytesVerifyFilter) GridNioServer(org.apache.ignite.internal.util.nio.GridNioServer) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) GridTracingManager(org.apache.ignite.internal.managers.tracing.GridTracingManager) GridNioCodecFilter(org.apache.ignite.internal.util.nio.GridNioCodecFilter) GridNioMessageReaderFactory(org.apache.ignite.internal.util.nio.GridNioMessageReaderFactory)

Aggregations

MessageReader (org.apache.ignite.plugin.extensions.communication.MessageReader)4 ArrayList (java.util.ArrayList)3 UUID (java.util.UUID)3 IgniteCheckedException (org.apache.ignite.IgniteCheckedException)3 ClusterNode (org.apache.ignite.cluster.ClusterNode)3 MessageFactory (org.apache.ignite.plugin.extensions.communication.MessageFactory)3 MessageFormatter (org.apache.ignite.plugin.extensions.communication.MessageFormatter)3 MessageWriter (org.apache.ignite.plugin.extensions.communication.MessageWriter)3 Serializable (java.io.Serializable)2 Channel (java.nio.channels.Channel)2 SocketChannel (java.nio.channels.SocketChannel)2 IgniteComponentType (org.apache.ignite.internal.IgniteComponentType)2 DirectMessageReader (org.apache.ignite.internal.direct.DirectMessageReader)2 DirectMessageWriter (org.apache.ignite.internal.direct.DirectMessageWriter)2 GridTimeoutObject (org.apache.ignite.internal.processors.timeout.GridTimeoutObject)2 IgniteRunnable (org.apache.ignite.lang.IgniteRunnable)2 CommunicationListener (org.apache.ignite.spi.communication.CommunicationListener)2 IOException (java.io.IOException)1 InetSocketAddress (java.net.InetSocketAddress)1 SocketAddress (java.net.SocketAddress)1