Tomcat

御丽诗妃谈MySQL索引怎么用

可紊 提交于 2020-08-11 13:25:55
MySQL索引怎么用?究竟能有多快?看完这篇你就懂了 追逐仰望星空 2020-08-05 10:43:38 推荐学习 阿里P8MySQL,基础/索引/锁/日志/调优都不误,一锅深扒端给你 “吃”完这本Java性能调优实战,MySQL+JVM+Tomcat等问题一键全消 为了能让索引能有更直观的效率,我在一张表里扔进了 百万条 数据(光靠这些数据,生成数据代码写了一个小时,解决MySQL8的文件导入权限问题解决了两个小时,导入数据花费了一个小时,我太难了~(;д;)。但是,一切不以 实践数据 为标准的理论都是**耍!流!氓!**o(´^`)o)。让我们一边讲解MySQL的使用一边看一下索引能为我们的查询带来的性能提升吧。 索引使用的优势 提高查询效率,简单来说就是查的 快 ! 再快 ! 更快 !外面说的什么提高表的速度、加速表连接、减少分组及排序时间、提高系统性能,说白了都是快,查得快!(顺便我发现百度出来的索引使用优势劣势貌似就那么一两套,真就天下文章一大抄呗,抄我的也欢迎,烦请注明出处或者作者Solid_lele哈) 具体会有多快呢? 这是没有索引的百万级数据查找(这个算快的了,慢的四十秒,时间不是很稳定,因为是从磁盘块中读取数据,原理参照我开头提到的那篇文章)10.797s: 这是有索引的百万级数据查找0.272s: 差了四十多倍,就相当于别人一年赚四十多万,我一年赚一万

开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程

谁说胖子不能爱 提交于 2020-08-11 13:03:35
告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误。查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%。 赶紧从会上下来,SSH登录服务器,使用 top 命令查看,几个Java进程CPU占用达到180%,190%,这几个Java进程对应同一个业务服务的几个Pod(或容器)。 定位 使用 docker stats 命令查看本节点容器资源使用情况,对占用CPU很高的容器使用 docker exec -it <容器ID>bash 进入。 在容器内部执行 top 命令查看,定位到占用CPU高的进程ID,使用 top -Hp <进程ID> 定位到占用CPU高的线程ID。 使用 jstack <进程ID> > jstack.txt 将进程的线程栈打印输出。 退出容器, 使用 docker cp <容器ID>:/usr/local/tomcat/jstack.txt ./ 命令将jstack文件复制到宿主机,便于查看。获取到jstack信息后,赶紧重启服务让服务恢复可用。 5.将2中占用CPU高的线程ID使用 pringf '%x\n' <线程ID> 命令将线程ID转换为十六进制形式。假设线程ID为133,则得到十六进制85。在jstack.txt文件中定位到 nid=0x85的位置,该位置即为占用CPU高线程的执行栈信息

Servlet与JSP学习笔记(一) 搭建环境

半腔热情 提交于 2020-08-11 13:01:16
Servlet与JSP学习笔记(一) 搭建环境 1. Eclipse中建立Dynamic Web Project 项目中的各个目录解析: deployment descriptor:部署的描述。 Web App Libraries:自己加的包可以放在里面。 build:放入编译之后的文件。 WebContent:放进写入的页面。 2. 创建jsp文件 首先,你可以注意到Eclipse为你创建的jsp模板编码都是ISO-8859-1。需要到Preferences中改一下。 为jsp文件添加如下代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jsp搭建环境</title> </head> <body> <% out.println("Hello World"); %> </body> </html> 3. 安装Tomcat 下载Tomcat包 启动tomcat 重启tomcat windows浏览器访问 4. 创建servlet文件 写的修改servlet如下: package com.hbin.servlet.admin;

Tomcat 8 字符集设置问题

回眸只為那壹抹淺笑 提交于 2020-08-11 12:53:23
Linux上部的Tomcat服务器中部署了Java Web应用,查看日志的时候发现里面的中文全部是乱码,把文件拖拽到本地Windows上全是问号。从其他系统拽过来一个正常显示的包含中文的日志也可以正常显示,说明系统字符集是没问题的。 于是按照从系统底层到应用设置注意筛查编码设置 系统编码 cat / etc / sysconfig / i18n echo $LANG 显示为GBK,没问题。 查看Tomcat配置文件中的编码设置 web.xml中和logging.properties 两个文件中均没有设置编码项,故应该都是默认设置。 JDK引用的设置 Java引用参数添加"-Dfile.encoding=GBK -Dsun.jnu.encoding=GBK" 将上面参数添加到Catalina.sh中JAVA_OPTS变量中,重启Tomcat,OK了。 最终用第3种方法完美解决问题 [root@node3 bin]# pwd /opt/tomcat8/bin [root@node3 bin]# cat catalina.sh|grep GBK JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Dfile.encoding=GBK -Dsun.jnu.encoding=GBK" 来源: oschina 链接: https://my.oschina.net/kcw

【面试题资源共享】一文总结最高频软件测试|sq|语句|思维发散|计算机基础|Linux|测试用例|接口测试|等技术面试题

杀马特。学长 韩版系。学妹 提交于 2020-08-11 11:15:01
思维发散 1.一个球, -把尺子长度是球直径的2/3,怎样测出半径? 2.四枚硬币,花面朝上,每次翻转三个,几次可以将四枚硬币变为字面朝上? 3. U2合唱团在1 7分钟内赶到演唱会现场问题? 4.小明一家过桥,黑夜? 5.一名军官要求24名士兵占成6排? 6.一只笔有什么用途,想象力发散一下? 7.有两根各段都不均匀的绳子,和一个打火机? 8.甲卖铅笔,成本是28元,卖31元。-天乙上甲那买铅笔,给了甲100元,甲没有零钱,于是和丙换了10元的 零钱后找到乙69元。过了一-会,丙说刚才甲和他换的100元是假的,于是甲只好给了丙一张真的100元。问甲 在整个交易中损失了多少? 9.时钟的指针一天内会重合几次? 10.有两个奇怪的村庄A和B,A村的人每周- - -三五说谎,B村的人每周二四六说谎,其他的日子里他们都说真话。 某天有个外地人来到这里,碰到两个人,并分别向他们提出关于日期的问题,两个人都说“前天是我说谎的日 子”。如果这两个人分别来自A和B村,那么这一天最有可能 是星期几? 11.有三顶黑帽子、两顶白帽子.A、B、C三个人在黑暗中分别拿- -顶戴上.开灯后每个人是看不到自己帽子的.A看 了其他两个人之后无法判断自己帽子颜色,于是说不知道: B看了其他两人之后也说自己不知道自己帽子颜色: C本来也判断不出自己帽子颜色,但听了A和B的话后,C说可以判断自己的帽子颜色了.A、B

Iptables常用配置和常用协议端口

烈酒焚心 提交于 2020-08-11 11:08:57
由于在服务器部署时,为了方便部署,把本机的iptables都关上了,然后还手欠的保存了设置,再想找回来是不可能了,那就重新设置一些适合我的防火墙策略吧! 如果你使用远程连接到你的服务器,那么ssh端口是不可少的,不要把自己关在外面! ssh默认端口号是22,可以通过/etc/sshd/sshd.conf来修改 iptables -I INPUT -p tcp --dport 22 -j ACCEPT 然后是拒绝所有的进入链接,有很多人用的DROP,下面简单说一下两者的区别: iptables -A INPUT -j REJECT REJECT和DROP的区别是什么?某天听到Sery的解释,感觉说的很容易理解: “就好象骗子给你打电话,drop就是直接拒收。reject的话,相当于你还给骗子回个电话。” 其实对于到底是使用DROP还是REJECT,从很久以前开始就非常多的人提出这方面的疑问。REJECT其实就比DROP多返回一个ICMP错误信息包,两个策略各有优劣,简单总结如下: DROP比REJECT好在节省资源,而且延缓******的进度(因为不会给***返回任何有关服务器的信息);坏在容易让企业的网络问题难以排查,而且在DDoS***的情况容易耗尽所有的带宽。 REJECT比DROP的好处在于容易诊断和调试网络设备或防火墙造成的问题;坏处上面也说了,你给骗子回个电话

写了这么多年代码,这样的登录方式还是头一回见!

╄→尐↘猪︶ㄣ 提交于 2020-08-11 11:03:21
Spring Security 系列还没搞完,最近还在研究。 有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。 然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的时候,有时候会遇到一些不是那么容易理解的东西,并不是说这个有多难,只是我们不了解 N 年前的开发环境,因此也就不容易理解某一行代码出现的意义。 所以为了搞透彻这个框架,有时候我们还得去了解之前发生了什么。 这就跟学 Spring Boot 一样,很多小伙伴问要不要跳过 SSM ,我说不要,甚至还专门写了一篇文章( Spring Boot 要怎么学?要学哪些东西?要不要先学 SSM? ),跳过了 SSM ,Spring Boot 中的很多东西就无法真正理解。 扯远了。。。 Spring Security 中对 HttpServletRequest 请求进行了封装,重写了 HttpServletRequest 中的几个和安全管理相关的方法,想要理解 Spring Security 中的重写,就要先从 HttpServletRequest 开始看起。 有小伙伴可能会说,HttpServletRequest 能跟安全管理扯上什么关系?今天松哥就来和大家捋一捋,我们不讲 Spring

linux环境部署搭建流程

[亡魂溺海] 提交于 2020-08-11 10:59:08
linux环境部署搭建流程 1,ubuntu/centos系统安装 2,ip网络配置 3,关闭防火墙 4,时间同步服务器 5,ssh协议配置(Windows安装xshell/secureCRT) 6,用户名密码设置 7,必要工具安装(tree,ll,vim,curl,scp......) 8,项目环境安装(mysql,python,java,tomcat......) xshell/secureCRT 来源: oschina 链接: https://my.oschina.net/u/4263893/blog/4326424

分布式配置管理--百度disconf搭建过程和详细使用

≯℡__Kan透↙ 提交于 2020-08-11 10:02:21
先说官方文档:http://disconf.readthedocs.io/zh_CN/latest/index.html 不管是否要根据官方文档来搭建disconf,都应该看一下这一份文档.精炼清晰地介绍了disconf的功能和其他一些包含的东西.看完至少对disconf已经有了大概的了解 disconf: https://github.com/knightliao/disconf (管理端) demos: https://github.com/knightliao/disconf-demos-java (客户端) wiki: https://github.com/knightliao/disconf/wiki (wiki) 我搭建的页面: 开始步骤吧: 安装Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper) 安装Tomcat(apache-tomcat-7.0.50) 安装Nginx(nginx/1.5.3) 安装 zookeeeper (zookeeper-3.3.0) 安装 Redis (2.4.5) 其中安装redis和nginx稍微麻烦一些,参考:    http://www.cnblogs.com/garfieldcgf/p/6438898.html

Docker 部署war包项目

心已入冬 提交于 2020-08-11 09:01:16
部署原理 使用Docker部署war项目,必须要用容器,我们就用tomcact容器,其实都是将war包丢到tomcat的webapps目录下,tomcat启动的情况下会自动解压war包。 部署方法 1.在Docker中安装tomcat容器的镜像,然后把war包丢到tomcat镜像下webapps中即可。但是如果tomcat关闭了,其webapps下的包就会消失。 2.利用挂载,还是安装tomcat容器的镜像,但是不把war包丢到tomcat下的webapps中,直接创建一个外部文件夹,将这个外部文件夹跟wabapps关联,这样把war丢到新建的文件夹中,tomcat的webapps也能读取到这个war包,这就是挂载。 操作环境: 1.已关闭防火墙,安全性 2.已经安装docker容器 3.宿主机centos 7系统 4.项目已打好war包 5.tomcat相关配置文件已准备好 部署过程 1.搜索tomcat镜像 docker search tomcat 2.下载tomcat镜像 docker pull tomcat 3.查看镜像 docker images 4.启动容器 docker run -d -p 8088:8080 tomcat & 排坑过程 如果发现网页无法访问,返回404 原因:下载的tomcat镜像有问题,容器中的webapps文件夹为空,故无法访问 尝试以下步骤: