自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 多线程-Callable接口

多线程的开启方式继承Thread类,实现Runnable接口,实现Callable接口。前两者是我们常见的多线程实现方式,就不详细介绍了。实现Callable接口,与前两者不同是带有返回值,在之前的单线程中,如果中间有一个任务需要计算很长时间,那么就可以另开辟一个线程去执行它,最终把结果汇总就可以了,不会阻塞线程。如下图:Callable实现方式用到了适配器模式。适配器模式就是让两个没有关系的接口,通过中间类产生关系。比如:new Thread();我们都知道需要在构造里面传一个Runna

2020-09-26 17:42:23 173

原创 线程池的介绍

线程池的优势1、降低资源消耗。通过重复利用已创建的线程降低创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。线程是稀缺资源,如果无限的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配。总结:线程复用、控制并发数、管理线程线程池的使用数组 Array 数组工具类:Arrays集合 Collection 集合工具类:Collections线程 Executor 线程工具类:Executor

2020-09-26 17:41:43 128

原创 Mysql索引优化分析

性能下降SQL慢执行时间长的原因1、查询数据过多,且没用到索引。2、关联了太多的表,太多的join。3、服务器调优及各个参数设置(缓冲区、线程数)。常见通用的join查询如图所示:7中常见的join操作:1 A、B两表共有(内连接) select * from t_emp a inner join t_dept b on a.deptId = b.id; 2 A、B两表共有+A的独有 (左连接) select * from t_emp a left join t_dept b on

2020-09-26 17:40:36 202

原创 Mysql的存储引擎

Mysql存储引擎说到Mysql存储引擎,是我出来实习才接触到的,在学校学习的是Oracle,学校教的太浅,只会增删改查,自己也学了点,序列、视图、存储过程等一些东西。出来实习发现自己真的只会增删改查,Mysql高级还是我面试京东实习的时候面试官问我的问题,我当时都蒙了,还有这玩意?电话面试都没过,伤心,后来看了Mysql高级部分,在这里做一个总结。InnoDB:(存储引擎)支持聚集索引(InnoDB)优点:InnoDB是一个事务型的存储引擎,有行级锁定和外键约束,提供了对数据库ACID事务的支持,

2020-09-26 17:34:16 121

原创 数据库锁的介绍

锁的定义:锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。生活例子:打个比方,我们到淘宝上买一件商品,商品只有一件库存,这个时候如果还有另一个人买,那么如何解决是你买到还是另一个人买到的问题?这里肯定要用到事务,我们先从库

2020-09-26 17:33:31 286

原创 JVM学习笔记

jvm垃圾回收的时候如何确定是垃圾?是否知道什么是GCROOT,以及什么对象可以作为GCRoot。如何确定是垃圾:简单说内存中不被使用的空间就是垃圾1、引用指针法:是通过引用计数器来进行判断的,如果有地方引用它计数器加一,如果引用失效就减一。这样会产生一个问题就是循环引用的问题,如果对象之间循环引用就不会被回收。2、GCRoot可达性分析:通过一系列GCRoot对象作为起点,开始向下搜索如果一个对象到GCRoot没有任何引用链相连的话就称为这个对象不可达,就是垃圾对象。什么对象可以作为GCRoo

2020-09-26 17:32:05 229

原创 Linux高级

生产服务器变慢,诊断思路和性能评估?1、使用top命令查看整机的使用情况(uptime显示的信息较少)主要看load(加载,负载) average(平均) 俗称系统的负载均衡,三个值代表1分钟、5分钟、15分钟系统的平均负载值,如果三个值相加/3*100%如果大于60%代表系统负载过重。 %CPU //cpu使用率%MEM //内存使用率2、vmstat(查看cpu使用情况)vmstat -n 2 3 //每两秒采样一次cpu情况,总共采样3次主要看procsr (runtim

2020-09-26 17:10:05 141

原创 GitHup操作

in关键字介绍关键词 in:name(项目名)或者description(描述)readme例如:要搜索秒杀系统(seckill)seckill in:name,readme,description范围搜索例如:搜索SpringBoot项目点赞数大于5000SpringBoot starts:>=5000分支数大于5000SpringBoot forks:>=5000搜索springcloud项目点赞数在100到200分支数在20到80springcloud starts:

2020-09-26 17:06:33 163

原创 MongoDB的安装

下载MongoDBMongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装:官方地址:https://www.mongodb.com/安装MongoDB在win7系统安装mongodb需要vc++运行库,如果没有则会提示“无法启动此程序,因为计算机中丢失VCRUNTIME140.dll”。去网上下载或使用360安装:1、运行 mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi

2020-09-26 17:05:38 139

原创 linux 安装 mysql 8.0.18

官网下载地址:https://dev.mysql.com/downloads/mysql/,我的是64位,根据自己环境选择下载。查看自己主机环境cat /etc/redhat-release由于官网下载速度非常慢,在这提供百度云链接;百度云链接Mysql版本是8.0.18;链接: https://pan.baidu.com/s/1v73r0aa3YjhLAHdvH2CPkw 提取码: p43m##安装包上传到Linux主机我用的Centos7可以用客户端FTP工具,也可以用rz命令,

2020-09-26 17:01:10 177

原创 mongodb入门

基础概念MongoDB中是通过数据库、集合、文档来管理数据库的传统数据库和MongoDB数据库对比1、一个mongodb实例可以创建多个数据库 2、一个数据库可以创建多个集合 3、一个集合可以包括多个文档。连接MongoDB1、命令格式mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][? options]]mongodb:// 固定前缀 usernam

2020-09-23 20:45:53 180

原创 可预知的异常处理和不可预知的异常处理

异常的处理流程1、自定义异常类型。2、自定义错误代码及错误信息。3、对于可预知的异常由程序员在代码中主动抛出,由SpringMVC统一捕获。可预知异常是程序员在代码中手动抛出本系统定义的特定异常类型,由于是程序员抛出的异常,通常异常信息比较齐全,程序员在抛出时会指定错误代码及错误信息,获取异常信息也比较方便。4、对于不可预知的异常(运行时异常)由SpringMVC统一捕获Exception类型的异常。不可预知异常通常是由于系统出现bug、或一些不要抗拒的错误(比如网络中断、服务器宕机等),异常类

2020-09-23 20:44:58 811

原创 Centos7安装rabbitmq

准备安装rabbitmq运行环境(Erlang)百度网盘链接链接:https://pan.baidu.com/s/1EGWmzoVyHzg9noYpqTpEew 提取码:et0o将文件上传到主机上sudo yum install esl-erlang_17.3-1~centos~6_amd64.rpmsudo yum install esl-erlang-compat-R14B-1.el6.noarch.rpm#说明yum必须能访问外网之前做乐优商城用的红帽系统,虽然yum过期,但重新

2020-09-23 20:44:08 151

原创 centos7安装redis和mongodb

centos7安装redis下载安装包官网下载:https://redis.io/download如果比较慢的话,用百度云也是可以的链接:https://pan.baidu.com/s/1n56OtMQmhRTE69D5PdPk5w 提取码:zqfb建议上传到我们的home下:/home/zhangtao/redis #解压 tar -xvf redis-4.0.9.tar.gz #编译安装 mv redis-4.0.9 redis cd redis make &&amp

2020-09-23 20:43:15 164

原创 Centos7安装elasticsearch

安装elasticsearch需要安装jdk1、查看以前是不是安装了openjdk(切换成root用户)rpm -qa | grep java显示如下:(有则卸载,没有就不用),注意版本可能会有些不一样,以实际操作的为准。tzdata-java-2013g-1.el6.noarchjava-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_642、卸载openj

2020-09-23 20:42:42 158

原创 Centos7安装FastDFS

上传tar包到Linux主机百度云链接如下链接: https://pan.baidu.com/s/1qpaXbuFdQRYCVDTWQyBeuA 密码: s52i#创建目录并上传到该目录mkdir -p /home/zhangtao/software/fdfs如图:安装依赖安装GCC依赖# 安装前要检查是否已经安装yum list installed gcc# 安装gcc命令yum -y install gcc如果出现如下图,就不用安装啦安装unzip工具#首先

2020-09-23 20:42:07 168

原创 安装node.js和用npm安装依赖所遇到的问题

安装node.js这里就不再说了,参考博客安装https://blog.csdn.net/cai454692590/article/details/86093297用npm安装依赖报错问题用npm install安装依赖报Error: Can’t find Python executable “python”, you can set the PYTHON env variable.解决办法:#安装windows-build-toolsnpm install --global --produ

2020-09-23 20:41:21 484

原创 Linux设置静态ip和解决ping外网不通的原因

Linux设置静态ip因为平常服务都是在Linux安装的,ip如果不设置静态,总是需要更改配置,带来不必要的麻烦。配置虚拟机以NAT模式连接编辑–》虚拟网络编辑器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnhqV18R-1600864825597)(http://www.ztinfo.xyz/upload/2020/4/image-e78e40d1944745eba747bc1593cd2207.png)]主要目的是看一下自己的网关配置物理机设置静态ip[

2020-09-23 20:40:46 4757 2

原创 Chrome离线安装插件(扩展程序)

找到对应.crx文件1、重命名成.rar文件2、解压3、注意不能直接将.crx文件拖拽到扩展程序中,如果直接拖拽会造成包不可用并且自动会删除.crx文件,网上一大堆让直接拖拽的别信。。。不能直接用压缩工具压缩成.zip文件,没用也导入不进去。。。只能直接将.crx文件重命名成.rar文件,然后解压,导入。。。。...

2020-09-23 20:39:54 287

原创 nginx转发tomcat所遇到的问题

首先在centos7中安装tomcat官网地址:https://tomcat.apache.org/download-70.cgi安装nginx可以参考我另一篇博客:http://www.ztinfo.xyz/archives/Centos7%E5%AE%89%E8%A3%85FastDFS配置nginx转发到tomcatserver { proxy_buffer_size 128k; proxy_buffers 32 128k; proxy_busy_buffers_

2020-09-23 20:39:08 1111

原创 部署前后端分离项目的一些问题

同一个域名不能部署两个不同的实例我就是想在同一个域名下通过nginx部署两个不同的实例,后端接口都是用springboot写的,可是一个配置好,另一个就不能用啦。但是同一个域名可以部署很多相同的实例,通过nginx作为代理服务器负载均衡到后端服务,还可以通过加权来控制给指定的实例更多流量。如下配置:相同实例负载均衡upstream tomcatserver1 {server 127.0.0.1:8888 weight=10;server 127.0.0.1:8081 weight=20;}

2020-09-22 20:09:57 275

原创 邮箱第三方登录

1、去对应邮箱官网开通POP3或者IMAP协议。2、用官方提供的服务器登录,如下图:

2020-09-22 20:04:50 1414

原创 记一次腾讯云服务器mysql服务自动停止异常

参考来源https://zhihu.websoft9.com/274/%E8%85%BE%E8%AE%AF%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A81%E6%A0%B81g%E5%86%85%E5%AD%98%EF%BC%8C%E5%B8%B8%E5%87%BA%E7%8E%B0mysql%E4%B8%8D%E8%83%BD%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%E6%88%96%E7%AA%81%E7%84%B6%E5%81%9C%E6%A

2020-09-22 20:03:44 817

原创 解决mysql连接数沾满,导致连不上数据库

用mysql连接工具报"Host '10.250.112.141' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"用java程序控制台报解决办法:使用mysqladmin flush-hosts 命令清理一下hosts文件如果是安装在Linux系统上执行命令: /usr/bin/mysqladmin flush-hosts -h localhost -uroot -p

2020-09-22 20:02:35 482

原创 一个接口被多个实现类实现,如何判定调用接口中的方法到底是执行哪个实现类方法

1、 直接new一个实例,这样肯定知道用的哪个实例 2、 定义接口类型的变量,用某个实例去初始化。。。这样也是肯定知道用的哪个实例3、用反射创建实现类或者实现类的子类对象,强转成接口类型ICar iCar = (ICar) ServiceAnnotationSupport.serviceInjection(Class.forName("com.test.AodiCarPlus"));iCar.run();...

2020-09-22 20:01:29 3737

原创 解决Request.getParameter取不到特殊字符bug

今天系统之间联调,发现对端平台发过来的json串,到我们系统获取不到,经过排查是因为对端系统发起的json串中有"#"这类特殊字符,我们用request.getparamter获取不到。解决办法:如果是前端发送的要用encodeURI编码,编码之后我们用request.getparamter就可以获取到了,然后后端用URLDecoder.decode(加密串) 解密。如果是后端发送URLEncoder.encode(要加密的串)加密。使用URLDecoder.decode(加密串) 解密还有个好处就

2020-09-22 20:00:31 1773

原创 Docker的安装与底层原理

Docker的组成镜像(image):Docker镜像就相当于是一个文件系统,通俗来说就是为镜像用来创建容器的容器(Container):Docker 利用容器 (Container) 独立运行的一个或一组应用,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台,可以把容器看做是一个简易版的Linux系统,可以简单用一句话来说,容器就是运行起来的镜像容器就相当于Java中的对象,镜像相当于Java中的类仓库(Repository)仓库是集中存放

2020-09-22 19:59:01 151

原创 Docker学习第二天

Doucker的中央仓库1、Docker官方的中央仓库,仓库是最全的,但是下载速度慢https://hup.docker.com/2、国内的镜像网站:网易蜂巢、daoCloudhttps://c.163yun.com/hub#/homehttp://hub.daocloud.io/ (推荐使用)3、在公司内采用私服的方式拉取镜像需要在/etc/docker/daemon.json{ "registry-mirrors":["https://registry.docker-cn.co

2020-09-22 19:55:19 152

原创 Docker学习第三天

Dockerfile自定义镜像创建自定义镜像就需要创建一个Dockerfiler,如下为Dockerfile的语言 from:指定当前自定义镜像依赖的环境copy:将相对路径下的内容复制到自定义镜像中workdir:声明镜像的默认工作目录run:执行的命令,可以编写多个cmd:需要执行的命令(在workdir下执行的,cmd可以写多个,只以最后一个为准) #示例:from daocloud.io/library/tomcat:8.5.15-jre8copy ssm.war /usr/l

2020-09-22 19:54:10 138

原创 Docker的CICD

CI、CD引言项目部署1.将项目通过maven进行编译打包2.将文件上传到指定的服务器中3.将war包放到tomcat的目录中4.通过Dockerfile将Tomcat和war包转成一个镜像,由DockerCompose去运行容器项目更新后,需要将上述流程再次的从头到尾的执行一次,如果每次更新一次都执行一次上述操作,很费时,费力。我们就可以通过CI、CD帮助我们实现持续集成,持续交付和部署。CI介绍CI(continuous intergration)持续集成持续集成:编写代码时,完成了

2020-09-22 19:52:50 315

空空如也

空空如也

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

TA关注的人

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