Java Scala play框架和NIO.2
我在Java Scala play框架和NIO.2,java,scala,asynchronous,playframework,nio,Java,Scala,Asynchronous,Playframework,Nio,我在scala中编程,使用play framework 2.5.3开发一个web应用程序,我需要创建一个TCP服务器/客户端,它将利用play的异步模型。读了一点书之后。 我学习了Java7中的NIO.2的异步服务器socketchannel/AsynchronousSocketChannel。我在Github()上找到了一个用于Scala的NIO.2实现 修改后,我能够运行代码并检查jvisualvm中的线程。我注意到NIO.2在接受连接时正在创建自己的线程。我担心NIO.2的线程和play
scala
中编程,使用play framework 2.5.3
开发一个web应用程序,我需要创建一个TCP服务器/客户端,它将利用play的异步模型。读了一点书之后。
我学习了Java7中的NIO.2的异步服务器socketchannel/AsynchronousSocketChannel
。我在Github()上找到了一个用于Scala的NIO.2实现
修改后,我能够运行代码并检查jvisualvm
中的线程。我注意到NIO.2在接受连接时正在创建自己的线程。我担心NIO.2的线程
和play framework的调度程序线程在高压力下会导致问题并降低web应用程序的速度。这会导致问题吗?有没有更好的方法将NIO.2集成到play框架的异步模型中
先谢谢你
Francis当Play使用Netty进行I/O时,Netty有自己的线程池,并且不会导致问题()。因此,我可以假设NIO.2拥有自己的线程池这一事实也是安全的
同时,您可以将NIO.2配置为使用与Play相同的线程池。首先,提取剧本的线程池。将其命名为执行器。然后
AsynchronousChannelGroup group = AsynchronousChannelGroup.withThreadPool(executor);
AsynchronousServerSocketChannel channel = AsynchronousServerSocketChannel.open(group);
AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group);
当Play使用Netty进行I/O时,Netty有自己的线程池,并且不会导致问题()。因此,我可以假设NIO.2拥有自己的线程池这一事实也是安全的
同时,您可以将NIO.2配置为使用与Play相同的线程池。首先,提取剧本的线程池。将其命名为执行器。然后
AsynchronousChannelGroup group = AsynchronousChannelGroup.withThreadPool(executor);
AsynchronousServerSocketChannel channel = AsynchronousServerSocketChannel.open(group);
AsynchronousSocketChannel channel = AsynchronousSocketChannel.open(group);