远程调用性能分析

影响性能的三个主要原因:

1、网络传输方式问题,传统的RPC框架或者基于RMI等方式的远程服务调用采用了同步阻塞I/O,当客户端的并发压力或者网络时延增大后,同步阻塞I/O会由于频繁地wait导致I/O线程经常性的阻塞,I/O处理能力下降。根据不同的应用场景,所以可以选择BIO、NIO和AIO作为IO模型

2、序列化性能差

  Java序列化机制是java内部的一种对象编解码技术,无法跨语言使用、资源占用率高

3、线程模型问题

 Netty的高性能之道:

 1、异步非阻塞通信:Netty的IO线程线程NioEventLoop由于使用了多路复用器Selector,可以同时并发处理成百上千个客户端SocketChannel,由于读写都是非阻塞的,可以充分提升IO线程的运行效率,避免由于频繁的IO阻塞导致的线程挂起。一个IO线程可以并发处理N个客户端连接和读写操作,架构的性能、伸缩能力和可靠性都得到了极大的提升。

2、高效的IO线程模型

3、高性能的序列化框架

猜你喜欢

转载自happytech.iteye.com/blog/2311593