线程池设计,线程池设计原则
作者:admin 发布时间:2024-02-13 21:15 分类:资讯 浏览:42 评论:0
现在有什么好用的java开发框架
Spring框架 Spring是Java开发中最常用的框架之一,它提供了全面的编程和配置模型,用于现代化Java企业级应用。Spring的核心功能是控制反转(Inversion of Control, IoC)和面向切面编程(Aspect Oriented Programming, AOP)。
java开发框架如下:SSH组合 一般常说的SSH组合框架,就是Struts,Spring,Hibernate,后来Struts被SpringMVC来取代,所以SSH也可以是后者的组合。
SpringBoot:用于搞定其他框架的一个框架,主要是提供了各种启动器、简化了各种配置、方便和其他框架集成、开发者能够快速上手。
为什么建议Netty的I/O线程与业务线程分离
1、Netty有一系列丰富的特性:有一套统一的API来处理异步和同步编程模式;使用非常灵活;简单但却强大的线程机制;业务组件分离方便重用;极小的缩减不必要的Memory Copy。
2、从可维护性角度看,由于NIO采用了异步非阻塞编程模型,而且是一个I/O线程处理多条链路,它的调试和跟踪非常麻烦,特别是生产环境中的问题,我们无法进行有效的调试和跟踪,往往只能靠一些日志来辅助分析,定位难度很大。
3、这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。
4、相比Netty3, Netty4有很多显著的变化:NioEventLoopGroup 是一个处理I/O操作的多线程事件环。即为Netty4里的线程池,在x里,一个Channel是由ChannelFactory创建的,同时新创建的Channel会自动注册到一个隐藏的I/O线程。
Dubbo之线程池设计
Dubbo的默认线程池,固定200个线程,就配置来看和LimitedThreadPool基本一致。 如果一定要说区别,那就是FixedThreadPool等到创建完200个线程,再往队列放任务。而LimitedThreadPool是先放队列放任务,放满了之后才创建线程。
在 Dubbo 中使用 ThreadLocal ,如果采用默认的设置,每次 Dubbo 调用结束,Dubbo 处理响应线程并不会被销毁, 而是归还到线程池中。
目前, 前台 (C端) 和后台( B端 )dubbo接口用 同一线程池 , cost长 和 一般接口 也在同一 线程池 。
Dubbo 将会进行排队等待,直到线程池中有空闲线程可以使用 。Dubbo 支持多种并发控制功能,包括限制从同一客户端到同一服务的并发请求数、防止恶意请求使服务器过载、确保服务的稳定性、并防止使用过多资源等。
在dubbo调用过程中被调用方有两个线程池:io线程池,业务线程池。这也是dubbo调优的点。
相关推荐
你 发表评论:
欢迎- 资讯排行
- 标签列表
- 友情链接