自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

原创 解决webserver tcp连接大量CLOSE_WAIT 问题

netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}' LAST_ACK 1 SYN_RECV 15CLOSE_WAIT7729 ESTABLISHED 471 FIN_WAIT1 3 FIN_WAIT2 52 SYN_SENT 1 TIME_WAIT 725 从结果可以看到有大量的连接处于CLOSE_WAIT状态。要解决这个问题的可以修改系统的参数,系统默认超...

2021-07-19 22:44:14 522 1

原创 [Socket]尴尬的CLOSE_WAIT状态以及应对策略

介绍本项目是对springboot官方提供的websocket进行的netty版本封装,api与原版的完全一致,让广大springboot用户更方便的使用netty版本的websocket。netty与tomcat的相比,占用内存更小,效率更高,在特殊环境下,netty的效率是tomcat的20倍,想更轻松的使用netty版本的websocket,那么现在就来使用它吧!~~使用说明添加maven库 <dependency> <groupId>com.s

2021-07-19 22:42:45 1722

原创 TOMCAT websocket 多连接内存泄漏与jetty对比分析

服务器环境8核 32G内存问题:在5000个连接的时候Tomcat内存基本吃满Tomcat 压测: 连接数 内存消耗 CPU 1000 6.9G 100% 2000 12G 100% 3000 19G 100% 4000

2021-07-19 22:41:46 1140

原创 springboot-websocket-netty

介绍本项目是对springboot官方提供的websocket进行的netty版本封装,api与原版的完全一致,让广大springboot用户更方便的使用netty版本的websocket。netty与tomcat的相比,占用内存更小,效率更高,在特殊环境下,netty的效率是tomcat的20倍,想更轻松的使用netty版本的websocket,那么现在就来使用它吧!~~使用说明添加maven库 <dependency> <groupId>com.s

2021-07-19 22:41:20 1235

原创 Tomcat和Jetty对WebSocket的支持

公司项目须要,了解了下眼下几种支持WebSocket的框架。曾经用jWebSocket做过一些项目。相对来说。改jWebSocket的源代码略复杂,也不是一天两天能搞定的。一调研才发现,如今非常多主流的web框架都已经開始支持WebSocket了,不得不感慨时间太快,科技进步太快,在微策略的几年真的荒废了。不多说,先记录下今天的研究。Tomcat: J2EE以下用的最多的容器应该就是tomcat了。说到tomcat对WebSocket的支持,不得不先提一下,眼下...

2021-07-15 00:32:51 714

原创 Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。1)bio默认的模式,性能非常低下,没有经过任何优化处理和支持.2)nio利用java的异步io护理技术,no blocking IO技术.想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 <Connector port=...

2021-07-15 00:24:43 91

原创 关于tomcat和jetty对比(不喜欢jetty的勿看)

首先转载下别人总结的文章相同点:1.Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。不同点:1.架构比较Jetty的架构比Tomcat的更为简单Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。2.性能比较Jetty和Tomc...

2021-07-15 00:18:44 4347

原创 Jetty 与 Tomcat 比较,及性能分析

主流java的web容器,主要是Tomcat, jboss, jetty, resin。由于以前我们主要用的是jboss4.0.5,但jbosse用的servlet容器是tomcat5.5,所以只进行tomcat和 jetty的比较,两个谁好谁坏,适合你用,你才知道。resin就不说了,好像已经成为了history.一、Tomcat现在Tomcat版本已经是8.0了,在Tomcat6和7都增加了很多新的特性。版本 特性Tomcat7系列Tomcat6系列二、jetty由...

2021-07-15 00:17:21 1350

原创 Tomcat 和 Jetty 比较和Spring Boot集成

一、Tomcat 和 Jetty 的比较Tomcat 和 Jetty 都是作为一个 Servlet 引擎应用的比较广泛,可以将它们比作为中国与美国的关系,虽然 Jetty 正常成长为一个优秀的 Servlet 引擎,但是目前的 Tomcat 的地位仍然难以撼动。相比较来看,它们都有各自的优点与缺点。 Tomcat 经过长时间的发展,它已经广泛的被市场接受和认可,相对 Jetty 来说 Tomcat 还是比较稳定和成熟,尤其在企业级应用方面,Tomcat 仍然是第一选择。但是随着 Jetty 的发展,Je

2021-07-15 00:14:00 705

原创 从源码剖析SpringBoot中Tomcat的默认最大连接数

为什么你的websocket只能建立256个连接?推出后,有许多小伙伴问:关键是怎么解决256这个问题。嗯,可能是我的标题起的有点问题,不过如果有认真阅读文章的话,应该会知道,其实256的限制是Chrome浏览器对WebSocket进行的限制。不过,对于一个客户端来说,假如一个窗口建立一个WebSocket连接的话,想要达到256个连接,需要打开256个窗口,这个一般来说很少出现。所以大家并不需要太多的担心这个前端限制。不过,谈到请求连接数限制的问题,我们倒是可以将注意力转移到后端的配置上来。上篇推文中

2021-07-15 00:06:35 2400 1

原创 SpringBoot maxConnections、maxThreads、acceptCount解析

详解:maxConnections、maxThreads、acceptCounttomcat中maxConnections、maxThreads、acceptCount的具体含义是什么呢?参考官方文档,对三者的含义说明如下:一、accept-count:最大等待数官方文档的说明为:当所有的请求处理线程都在使用时,所能接收的连接请求的队列的最大长度。当队列已满时,任何的连接请求都将被拒绝。accept-count的默认值为100。详细的来说:当调用HTTP请求数达到tomcat的最大线程数时,还

2021-07-15 00:04:16 1652 2

原创 SpringBoot内置Tomcat支持多大并发量和连接数

SpringBoot内置Tomcat,再默认设置中,Tomcat的最大线程数是200,最大连接数是10000。支持的并发量是指连接数,200个线程如何处理10000条连接的? Tomcat有两种处理连接的模式,一种是BIO,一个线程只处理一个连接,另一种就是NIO,一个线程处理多个连接。由于HTTP请求不会太耗时,而且多个连接一般不会同时来消息,所以一个线程处理多个连接没有太大问题。 默认值可以在spring-boot-autoconfigure-2....

2021-07-15 00:03:27 3278

原创 Spring boot中最大连接数、最大线程数与最大等待数在生产中的异常场景

在上周三下午时,客户、业务和测试人员同时反溃生产环境登录进入不了系统,我亲自测试时,第一次登录进去了,待退出后再登录时,复现了客户的问题,场景像是请求连接被拒绝了,分析后判断是spring boot的连接数使用完了,于是重启了服务,客户访问都恢复正常。虽然问题暂时解决了,但实质原因还无法确定。根据分析,判断是spring boot服务连接被拒绝,查看配置的最大连接数和最大线程数时,配置为:#最大连接数server.tomcat.max-connections=300#最大线程数server.tomc

2021-07-15 00:01:41 3214

原创 置springboot自带tomcat的最大连接数和最大并发数

设置springboot自带tomcat的最大连接数和最大并发数从源代码来看,最大连接数和最大并发数默认是10000和200可以通过工程下的application.yml配置文件来改变这个值server:tomcat:uri-encoding: UTF-8max-threads: 1000max-connections: 20000...

2021-07-15 00:00:45 1917

原创 Linux下性能压测之系统参数调优

1. 前言在做服务端压测的时候,经常会遇到一些由于Linux系统限制导致压力上不去的情况,这里从Linux系统参数上做一些调优,减少此类因素的干扰。2. 配置2.1 Linux系统配置执行:sudo vi /etc/sysctl.conf,添加以下内容:net.ipv4.tcp_syncookies = 0fs.file-max = 12553500fs.nr_open = 12453500kernel.shmall= 1048576kernel.shmmax = 188743

2021-07-14 22:45:02 992

原创 压力测试时候Linux系统参数的调优

有个站点,我用ab做压测,结果ab总是返回错误,我做了如下的一些调优,最后正常了。nginx的配置.conf:worker_processes 32;worker_connections 65536;过多的TIME_WAIT在压力中,通过netstat发现很多TIME_WAIT的连接描述符:netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'ss -ant

2021-07-14 22:42:41 262

原创 nginx配置websocket转发功能

之前配置好了服务器上面的linux-dash和jupyter notebook,然后想着每次都是要输入ip和端口很麻烦,于是想给它配置个网址,然后用Nginx转发过去。前面都很顺利,DNS解析增加记录,配置Nginx。但是遇到了奇怪的问题,linux-dash迟迟不显示系统状态,重启了N遍还是没办法,jupyter能登录但是没办法连接到内核,显示kernel error,点开就是not found。找了很久的问题,最后猜测是nginx的问题,然后发现他们都有个共同点那就是用了websocke

2021-07-14 22:41:41 696

原创 使用Nginx代理和转发Websocket连接

1.Websocket 简介WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。2.Nginx 简介Nginx是一个反向代理服务器,所有的来自浏览器的请求必须经过Nginx。通常的正向代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中,此时客户机是主动方。而在反向代理中,web服务器是主动

2021-07-14 22:39:09 1244

原创 nginx转发websocket

nginx转发websocket1、Nginx 支持websocket的配置server { listen 80; server_name 域名; location / { proxy_pass http://127.0.0.1:8080/; // 代理转发地址     proxy_http_version 1.1; proxy_read_timeout 3600s; // 超时设置 // 启用支持w

2021-07-14 22:37:17 3809

原创 Nginx 解决WebSocket TCP 转发问题

#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; defau.

2021-07-14 22:35:34 786

原创 linux的TCP连接数量最大不能超过65535个,那服务器是如何应对百万千万的并发的?

光是在知乎上这个问题我都看了好几遍了,问之前先搜一下不好吗?简单说来:TCP连接数量最大不能超过65535是错的。一个连接由一个5元组决定(protocol,local IP,local port,remote ip,remote port),对于TCP,protocol固定是TCP,还有四个元素。对于服务器来说,local port一般是固定的,比如HTTP(80),但是remote ip和remote port没有限制。连接数量是没有限制的,除非是一个端口只能有一个连接。你说的这个65535

2021-07-11 15:04:40 1542 1

原创 Netty与Spring WebSocket

刚开始的时候,我尝试着用netty实现了websocket服务端的搭建。在netty里面,并没有websocket session这样的概念,与其类似的是channel,每一个客户端连接都代表一个channel。前端的ws请求通过netty监听的端口,走websocket协议进行ws握手连接之后,通过一些列的handler(责链模式)进行消息处理。与websocket session类似地,服务端在连接建立后有一个channel,我们可以通过channel进行与客户端的通信 /** * TO

2021-07-03 20:44:30 5525 1

原创 关于WebSocket分布式实现的一种方案

WebSocket常用于做后台消息推送,也可以做简易的IM聊天,由于WebSocket中的Session没有实现序列化接口的,我们无法将session序列化实现分布式部署,今天就来记录一种分布式的实现方案。实现原理首先我们讲的这种方式是利用redis订阅和发布模式来实现,大致过程:每个服务器记录连接,保存在内存当中 当需要推送websocket消息的时候,同时在redis发布一个消息 每个服务器订阅redis的消息,当监听到有消息时,每台服务器遍历自己内存当中的连接进行发送这样我们就可以实

2021-07-03 20:40:03 2257 1

score.csv (score.csv)

load data local inpath '/export/servers/hivedatas/score.csv' into table score2 partition(year='2018',

2020-02-29

teacher.csv

load data local inpath '/export/servers/hivedatas/student.csv' overwrite into table student;

2020-02-29

student.csv

load data local inpath '/export/servers/hivedatas/student.csv' into table student;

2020-02-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除