GithubHelp home page GithubHelp logo

wzhiyog / nio-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from traceless/nio-server

0.0 0.0 0.0 2.33 MB

测试nio服务,测试java的nio服务,相关测试例子

JavaScript 8.70% Java 91.30%

nio-server's Introduction

nio-server

代码简单易懂就没必要说明了。进入目录后,mvn clean install -Dmaven.test.skip 编译一遍即可。

一、LOG日志导致吞吐量上不去的原因

原因搞错了

  1. 为啥测试过程中 System.out.println() 会比log日志更快,原因是System.out.println() 输出的字符串短,而log输出的到控制台的字符串长很多。System.out.println()如果输出很多的日志,一样会性能下降,已验证。由于服务运行一般是后台运行的,所以这个问题不大。
  2. 跟是否异步写入文件,暂时无太大关系(远还没到这文件写入的瓶颈),但是仍然建议异步写入文件。
  3. 如果日志有性能瓶颈可以使用Log4j2。Log4j2异步性能非常的强:log4j2优越的性能其原因在于log4j2使用了LMAX,一个无锁的线程间通信库代替了logback和log4j之前的队列. 并发性能大大提升。

二、为啥客户端要大于服务接口的性能呢

1、主要是为了控制连接数这变量对于客户端性能影响的问题,如果连接数很大会导致客户端需要吃更多的cpu,就会影响到服务的接口性能,毕竟在同一个服务器上(其实实际影响不大),那么就不容易得到服务器接口真实的水平,就会影响我们验证IO和连接、和吞吐量的关系。

nodejs模块

  • node版本 14以上即可。
  • 进入nodejs目录,执行npm i,即可安装相关模块依赖。默认端口7080,启动后就可以进行测试啦。

springboot模块

  • 如果要使用tomcat进行测试,可以在pom文件中去掉 undertow依赖,聪明如你,肯定知道怎么搞啦。
  • VertxHttpClientUtil 是使用vert.x相关核心包,NIO客户端。如果你有需要大量并发的请求外部接口,那么这个是一个非常不错的选择。

vert.x 模块

  • 兴趣挺大,暂时没想到有什么可写的。实在要讲的话,可能会讲它的分布式系统方案,它设计非常特别,天生就支持微服务开发,天生就具备分布式部署。
  • vert.x在IO密集型的服务中优势非常大。
  • 这个项目有一个分布式模式部署例子,分别启动 Manager, User , Order,Controller,类即可运行整个集群了,看看它是怎么进行微服务调用。actor模型跟go的csp 有的一拼。个人感觉actor更加牛逼,天生为分布式而生。

webflux 模块

  • 非常恐怖的技术,难以理解的响应式编程,处理数据和业务像面条一样的,像流水线一样处理你的业务。非常恐怖,比C语言还要恐怖的技术。
  • 活不久的技术,千万不要入坑,协程的到来应该就是它死亡的那天。建议入坑vert.x,java协程的到来应该会为它赋予更强大的生命力。

nio-server's People

Contributors

traceless avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.