采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,通过限流来控制并发时,代码里使用了RateLimiter类。而Tomcat本身也是可以限制最大连接数和最大线程数的,这两种方式有什么区别么?
我可不可以这样理解,tomcat的最大连接数和最大线程数是在整体上进行控制,设置一个上限,内部应用的线程数目不能超过这个上限。基于这个上限的前提下,RateLimiter再对具体的接口或资源操作进行细粒度的控制,是这样子么?
这个不完全是。tomcat那里控制的外面请求进入服务器的一个并发限制,当请求被服务器处理时,当前线程还可以额外启动更多的线程,拿课程里演示的一些例子,基本都是在main这个主线程去启动新的线程来做些处理,这个时候也是可以引入ratelimiter来做一些限制的。
我还是不是很理解。我做过测试,将tomcat的maxThreads设置为3,maxConnections设置为10,acceptCount设置为2。使用jmeter对TestController的test方法做压测,并发数为50,表现的情况是,每秒钟test方法执行了3次,只启动了3个线程。而没有对tomcat进行限制的时候,是可以每秒钟执行50次的
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.2k 15
3.6k 12
1.2k 12