reactor模式详解,什么是reactor模式

  reactor模式详解,什么是reactor模式

  

  如何解决写爬虫IP受阻的问题?立即使用。

  Reactor反应器模式

  到目前为止,高性能网络编程都绕不开反应器模式。很多知名的服务器软件或中间件都是基于reactor模式实现的,比如Nginx、Redis、Netty等。

  反应器模式是高性能网络编程的必要模式。

  Reactor简介

  反应器模式由两个角色组成:反应器线程和处理器处理器:

  (1)1)反应器线程的职责:负责响应IO事件,并将其分配给Handlers处理器。

  (2)2)Handlers处理器的职责:业务处理逻辑的非阻塞执行。

  从上面对反应器模式的定义来看,这种模式并没有什么神奇之处。当然,从简单到复杂,反应器模式有许多版本。按照之前的定义,只是最简单的版本。

  多线程OIO的致命缺陷

  在Java的OIO编程中,第一个也是最原始的网络服务器程序是使用一个while循环来不断地监视新连接的端口。如果是,调用一个sum处理函数来完成它。示例代码如下:

  @测试

  公共void客户端()引发IOException {

  Socket client=新套接字( 127.0.0.1 ,9999);

  writer writer=new output streamwriter(client . get output stream());

  writer . write( Hello World );

  writer . flush();

  writer . close();

  client . close();

  }

  @测试

  公共void服务器()引发IOException {

  server socket server=new server socket(9999);

  while (true){

  socket socket=server . accept();

  reader reader=new InputStreamReader(socket . getinputstream());

  打印(阅读器);

  reader . close();

  socket . close();

  server . close();

  }

  }这种方式最大的问题是,如果没有处理好之前网络连接的句柄(socket),就无法接收后续的连接请求,所以后续的请求都会被阻塞,服务器的吞吐量太低。这对服务器来说是一个严重的问题。

  推荐教程:以上《Java》是Java Reactor反应器模式的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: