![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容器
文章平均质量分 88
技术类
郑兆辉
这个作者很懒,什么都没留下…
展开
-
Tomcat是如何实现异步Servlet的
01 前言本篇文章我们来聊聊Tomcat是如何实现异步Servlet的以及异步Servlet的使用场景。02 手撸一个异步的Servlet我们直接借助SpringBoot框架来实现一个Servlet,这里只展示Servlet代码:@WebServlet(urlPatterns = "/async",asyncSupported = true)@Slf4jpublic class AsyncServlet extends HttpServlet { ExecutorServic原创 2021-08-30 20:14:55 · 502 阅读 · 1 评论 -
Tomcat性能优化(二)
六、NIO连接器前端整体框图1、图解tomcat总体流程(源码详细分析解读见视频)连接器在Tomcat中是一个重要的组件,叫做Tomcat前端,这个前端框架不是通常我们讲的Web前端,那是structs,javascript,jsp这些内容,这里讲的是以NIO的方式,来描述从socket请求到Request对象的过程,而我们理解的Tomcat后端,通常是以CoyoteAdapter为分界点,后端框架通过Mapper进行映射,可以总结为下面的示意图:Tomcat前端接受的是Socket请原创 2021-08-30 20:13:56 · 517 阅读 · 0 评论 -
支撑百万级并发,Netty如何实现高性能内存管理
Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制通过学习其中的实现原理、算法、并发设计,有利于我们写出更优雅、更高性能的代码;当使用Netty时碰到内存方面的问题时,也可以更高效定位排查出来本文基于Netty4.1.43.Final介绍其中的内存管理机制ByteBuf分类Netty使用ByteBuf对象作为数据容器,进行I/O读写操作,Netty的内存管理也是围绕着ByteBuf对象高效地分配和释放当讨论ByteBuf对象管理,主要从以下方面进行分类:Poo原创 2021-08-20 17:40:09 · 213 阅读 · 0 评论 -
Netty 粘包和拆包
前言前面几个章节主要解析了 Netty 的编码、解码问题,那么是否有了编解码器,我们的 Netty 通信就能正常了呢?TCP 协议在传输数据时没有办法判断数据是什么时候结束的,它无法识别一段完整的信息,因此可能会导致接受到的数据和发送时的数据不一致的情况。因此需要人为的指定一种规范的协议,从而保证数据的安全性,比如:我们所熟悉的 HTTP 协议。本节内容,我们主要需要以下两点知识TCP 拆包、粘包的原因; TCP 拆包、粘包的解决方案。2. 学习目的拆包、粘包在 TCP 协议当中,或转载 2021-08-20 09:28:17 · 155 阅读 · 0 评论 -
Netty 通讯协议设计概要
前言上节内容,我们主要介绍了 Netty 的粘包和拆包问题,并且大致介绍了 Netty 提供的常见拆包器,分别是固定长度拆包器、行拆包器、分隔符拆包器、基于长度域拆包器,但是它们只是相对简单的协议,也就是说无法满足复杂的业务场景,因此,我们可以通过自定义协议的方式去解决 TCP 的粘包和拆包问题。2. 了解什么是协议首先,我们大概了解什么是协议,协议可以把它认为是一种规则而不是技术,约束客户端和服务端之间通讯,数据组装和拆分的一种规范。客户端安装某种规范去组装数据,把数据传输给服务端,服务端再.转载 2021-08-17 17:31:28 · 504 阅读 · 0 评论 -
5分钟了解Tomcat的组成和工作原理
Server和ServiceTomcat中Server是最顶级的组件,它代表Tomcat的运行实例,一个JVM中只会包含一个Server。为了方便扩展,Server中引入了监听器Listener组件;为了方便集成JNDI,引入了GlobalNamingResources组件。Server中最重要的组件还是Service。一个Server包括多个Service在Tomcat中,Service组件是服务的抽象,一个Server中可以包含多个Service。Service组件负责从接收客户端请求到转载 2021-08-16 09:20:22 · 214 阅读 · 0 评论 -
Java开发中Netty线程模型原理解析
Java开发中Netty线程模型原理解析,Netty是Java领域有名的开源网络库具有高性能和高扩展性的特点,很多流行的框架都是基于它来构建。Netty 线程模型不是一成不变的,取决于用户的启动参数配置。通过设置不同的启动参数Netty ,可同时支持 Reactor 单线程模型、多线程模型。Netty线程模型就是Reactor模式的实现,如图:Netty抽象了两组线程池BossGroup和WorkerGroup,其类型都是NioEventLoopGroup,BossGroup用来接受客户端发转载 2021-08-11 10:26:04 · 86 阅读 · 0 评论 -
Kubernetes VS Docker:了解2021年的容器
架构之美设计满足业务的系统架构、大数据中台、算法平台,并非易事。在这里分享一线大厂线上真实案例的思考和实践,让我们在互联网架构设计、大数据研发、机器学习实践之路上共同成长!66篇原创内容公众号- 前言 -几个星期前,Kubernetes开发团队宣布,他们正在弃用docker。这则新闻通过科技界和社交网络广为流传。Kubernetes 群集是否会中断,如果是,我们将如何运行我们的应用程序?我们现在该怎么办?今天,我们将审查所有这些问题和更多。让我们从头开始。如果你已经熟悉do.转载 2021-08-09 10:34:32 · 111 阅读 · 0 评论 -
Jenkins与Docker的自动化CI/CD流水线实战
在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实现一套CI自动化发布流程。1、发布流程设计工作流程:1.开发人员提交代码到Git版本仓库;2.Jenkins人工/定时触发项目构建;3.Jenkins拉取代码、代码编码、打包镜像、推送到镜像仓库;4.Jenkins在Docker主机创建容器并发布。环境规划如下:角色转载 2021-08-04 09:19:12 · 551 阅读 · 0 评论 -
Tomcat性能调优:线程设置
说明:一般线程与虚拟内存JVM设置同步设置,两者存在对应关系。1.线程概念说明maxThreads:此连接器将创建的请求处理线程的最大数量, 即可以处理的同时请求的最大数量,默认值为200。minSpareThreads:终保持运行状态的最小线程数。 这包括活动线程和空闲线程。 如果未指定,则使用默认值10。maxConnections: 服务器在任何给定时间将接受和处理的最大连接数。 对于BIO,除非使用执行程序,否则默认值为maxThreads的值,在这种情况下,默认值为执行程序的maxThre转载 2021-08-03 16:28:07 · 6289 阅读 · 0 评论 -
Tomcat优化大全,进来看了,真就会了
前言Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。相信大家对于 Tomcat 已经是非常熟悉了,本篇将介绍tomcat的常见优化。那么为什么要对tomcat进行优化呢。因为Tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈。相信大家看完这篇博客,会有一定的收获。Tomcat连接器协议优化Tomcat 连接器的三种方式: bio、ni转载 2021-07-26 14:43:12 · 3151 阅读 · 0 评论 -
想理解、会用Docker,这篇文章就够了
Docker是啥?打开翻译君输入Docker 结果显示码头工人,没错!码头工人搬运的是集装箱,那么今天要讲的Docker其操作的也是集装箱,这个集装箱就静态而言就是一个应用镜像文件,就动态而言,就是一个容器。蒙了吧?好吧,上图解释。Docker从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,其实更专业的叫法是应用容器( Application Container ),Docker进程和普通的进程没有任何区别,它就是一个普通的应用进程。不过是用来操作镜像文件的。所以Docker进程+构建的应转载 2021-07-21 09:42:45 · 192 阅读 · 0 评论