How many connections can I select in java.nio, select one at a time?

I did a little work on the new NIO socket. I use MINA to create a simulated server that accepts a connection from many clients (about 1000) and processes the received data. I also created a client simulator that creates about 300 client connections and sends data to the server using a stream. And as a result, some of the connections are interrupted by the server. Code below

 try {
  listener = new NioSocketAcceptor(ioThread);

  listener.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MessageCodecFactory()));
  listener.getFilterChain().addLast("thread", new ExecutorFilter(100, 150));
  listener.setHandler(new IncomingMessageHandler(serverMessageHandler));

  listener.bind(new InetSocketAddress(PORT));
 }
 catch (IOException ioe) {
 }

And here is the handler, Session is my class for every connection to the client

 @Override
 public void sessionCreated(IoSession session) throws Exception {
  new Session(session.getRemoteAddress(), handler, session);
  super.sessionCreated(session);
 }

 @Override
 public void messageReceived(IoSession session, Object message)
   throws Exception {

  Message m = Message.wrap((MessagePOJO)message);
  if (m != null) {
   Session s = SessionManager.instance.get(session.getRemoteAddress());
   if (s != null) {
    s.submit(m);
    ArmyServer.instance.tpe.submit(s);
   }
  }

  super.messageReceived(session, message);
 }

 @Override
 public void sessionClosed(IoSession session) throws Exception {
  Session s = SessionManager.instance.get(session.getRemoteAddress());
  if (s != null)
   s.disconnect();
  super.sessionClosed(session);
 }

And the client simulator, SIZE ~ 300 - 400

     for (int i = 0; i < SIZE; i++) {
  clients[i] = new Client(i);
  pool[i] = new Thread(clients[i]);
  pool[i].start();
 }

So the question is, how many Mina compounds can take one at a time? Or are there any errors in the code?

+1
2

. . ServerSocket , , .

( backlog ServerSocket.bind()) / sleep() .

Mina, , 1 Thread, , .

+3

, , , . , Integer.MAX_VALUE - . , , SelectorProvider, , JVM...

:

:

+2

Source: https://habr.com/ru/post/1619969/


All Articles