自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

憧憬美好生活的boy

一切的努力都是为了有一个美好的生活、

原创 如何设计一个秒杀系统?

本文作为许令波老师“如何设计一个秒杀系统?”这一课程的学习记录。 同时也记录下今年项目中的一些原因导致秒杀、抢购服务器宕机 秒杀系统的关键点 秒杀系统其实主要解决2个问题,一个是并发读,一个是并发写。整体概况为“稳、准、快” 高性能。 秒杀涉及大量的并发读和并发写,因此支持高并...

2018-12-29 16:17:04 6190 3

原创 《MySQL实战45讲》数据库更新语句执行原理

购买了林晓斌老师的这个课程,此文作为学习笔记 update T set c=c+2 where ID=2 这样一句更新的sql语句执行过程分为以下几个步骤: 根据条件查询ID=2的记录(这里和查询语句的执行步骤是一样的) 执行器执行更新 记录日志redo log(重做日志、物理日志) bi...

2018-11-23 20:05:38 291 0

原创 《MySQL实战45讲》数据库查询语句执行原理

购买了林晓斌老师的这个课程,此文作为学习笔记 首先要知道MySQL的查询语句是如何执行的,就需要先知道MySQL的逻辑架构图 上图看出MySQL可分为Server层和存储引擎层两部分 1.Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,...

2018-11-15 23:20:09 906 0

原创 打开Github很慢,解决方式

打开hosts文件,配置如下映射即可 31.13.64.49 github.global.ssl.fastly.net 192.30.253.113 github.com 185.199.108.153 assets-cdn.github.com 185.199.108.153 documentc...

2020-03-24 19:51:34 448 1

原创 Java面试题分享

本文意在分享最近的一些面试题 明源云 1.熔断用了吗,怎么用的 2.分布式锁怎么实现 超时时间设置多少合适 3.首页为什么要拆分单独的服务 4.springcould资源隔离 5.为什么那么多分布式框架要选择springcould 6.mysql主从同步原理,有延时吗 7.读写分离是怎么去做的...

2019-08-27 11:11:45 782 0

原创 volatile详解

volatile是虚拟机提供的轻量级的同步机制 volatile三大特性 保证可见性 不保证原子性 禁止指令重排(有序性) 可见性: 每个线程创建时JVM都会为他创建一个工作内存,工作内存是每个线程的私有数据区域,Java内存模型中所有的变量都存在主内存,线程对变量的读取和赋值都要在工作内存中...

2019-06-16 18:25:12 75 0

原创 记录开发中遇到的坑

此ip地址不允许调用接口,如有需要请登录微信支付商户平台更改配置 微信支付企业付款到零钱接口,需要配置IP白名单。配置了服务外网IP之后死活不对 原因是服务器出口IP和外网IP不一致。通过下面方式获取出口IP即可 curl http://members.3322.org/dyndns/getip ...

2019-05-27 16:29:06 138 0

原创 生产事件实录-Mysql Waiting for table metadata lock

专栏链接地址 1、生产事件实录-浅谈XEE漏洞 2、生产事件实录-CPU报警超负载原因查找 问题起源 订单日志表4000w数据,某同事执行了下面类似一条DDL语句,因为事务过长导致用户下单时,订单插入日志的事务一直等待释放锁。服务不可用长达十分钟。 alter table gp_order_l...

2019-04-25 15:47:21 111 0

原创 生产事件实录-浅谈XXE漏洞

问题起源 微信商户平台收到了微信的安全通知,如下所示,漏洞详情则是XEE漏洞。所以就去了解了XEE 早在2018年7月初有国外白帽子就发现了这个漏洞,作为一线技术人员竟然全然不知(自我检讨ing…) 什么是XEE漏洞? XXE是指基于xml的,xml外部实体攻击 下面看一段简单的xml文档代码...

2019-04-19 10:44:35 93 0

原创 生产事件实录-CPU报警超负载原因查找

线上环境在无秒杀、营销活动等情况下,出现CPU满载,报警 线上环境在无秒杀、营销活动等情况下,出现CPU满载,报警 top命令找到消耗CPU的进程 top -Hp 29751(shift+p 按cpu排序,shift+m 按内存排序)找到进程中消耗CPU的线程 printf ‘%x\n’ ...

2019-04-15 20:32:27 166 0

原创 TCP、UDP详解

TCP、UDP是什么 连接、无连接含义 TCP:传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接(面向连接),之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP:用户...

2019-03-23 16:31:09 48 0

原创 RocketMQ部署采坑记录

org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 发送消息时报错 问题原因不明,按照下面教程指定IP就可以了 #进入任意目录,编写配置文件,并写好...

2019-01-30 18:21:11 277 0

原创 子线程抛出异常和主线程事务回滚

本文主要记录多线程运用时子线程返回结果、子线程异常事务回滚、子线程异常主线程事务回滚 本文只是学习记录,无太多论述性的观点,有误敬请指正 业务场景 如果子线程的发生异常,主线程回滚,否则提交 解决方案 既然说到线程,那么就是Runnable、Thread、Callable三种方式 Run...

2018-12-21 17:32:33 2800 1

原创 Docker安装、命令详解、自定义镜像

文章只做基本操作命令记录,后续持续学习更新 1.安装 uname -r #检查内核版本是否是3.10以上 yum update #如果低于3.10就需要更新内核 yum install docker #安装docker systemctl start docker...

2018-12-11 17:28:25 214 0

原创 Git怎么把不用提交的IDE等配置文件忽略?

场景描述:     在操作git时,把文件提交到暂存区,那些不必要的配置文件总是要被提交。如下图 .idea和target目录或者文件都是不需要提交的 解决方案 打开https://gith...

2018-11-29 16:38:11 383 0

原创 IDEA创建项目push到git上报错“Push rejected: Push to origin/master was rejected”

Push rejected: Push to origin/master was rejected 解决方案如下: 1.“Show in Explorer”切换到自己项目所在的目录,Git Bash Here 2.依次输入命令: git pull git pull origin master ...

2018-11-28 19:30:16 422 0

原创 Git基本操作及命令记录

1.本地库和远程库交互场景 团队内部协作 经理创建远程库,然后推送(push)代码到远程库,组员再clone到本地,修改后再push(前提是加入团队),经理再拉取(pull) 跨团队合作 A团队leader创建远程库,B团队的人fork一份到自己的远程库。然后B再clone一份在本地,解决...

2018-11-27 19:57:15 84 0

原创 发送邮件javax.mail.MessagingException: 501 Syntax: HELO hostname

问题 线上邮件发送失败,报异常javax.mail.MessagingException: 501 Syntax: HELO hostname 解决方案 //查看机器hostname [admin@zyhy-10-1-0-16 ~]$ hostname //查看hosts文件配置...

2018-09-04 19:34:06 517 0

原创 学习《高性能MySQL》笔记-索引篇

1.索引释义: 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。比如书本的目录,那几页目录就是索引内容,目录中的维度比如“章节名称”、“首字母”对应的就是索引的列。...

2018-08-22 18:39:35 174 0

原创 Dubbo记坑

1.因为没有配置dubbo请求连接超时时间,导致出现以下场景 因为没有配置dubbo请求连接超时时间,消费者请求到生产者之后,调用了查询语句,但是消费者端报错了。说连接超时异常,当再请求一次,发现又可以了。 com.alibaba.dubbo.rpc.RpcException: Failed ...

2018-06-26 15:25:12 220 0

原创 很舒服的Xshell配色方案

分享一个很舒服的Xshell配色方案 文件下载地址: https://pan.baidu.com/s/1a0Ly4SMSPNWy343MfRVARQ 密码: d5u8 导入即可 效果图

2018-06-21 11:12:24 6696 3

原创 FindBugs-IDEA插件的安装和使用

1.下载 因为使用idea在线无法下载,可下载这个链接的插件,亲测可用 https://download.csdn.net/download/libra_ts/10467779 2.安装 安装完成,重启。 3.使用 a. Bad practice代码中的一些坏习惯 ...

2018-06-08 17:53:18 1343 0

原创 ThreadPoolTaskExecutor参数详解、问题

前言 当需要进行一项耗时操作时,就需要用到子线程,用到子线程时可以选择new一个子线程来操作,这样不是不行,但是效率会很低。而且消耗内存,所以就需要引用线程池来解决问题 配置ThreadPoolTaskExecutor &amp...

2018-05-11 23:06:12 2397 0

转载 Mysql SQL查询今天、昨天、n天内、第n天的数据

Mysql SQL查询今天、昨天、n天内、第n天 注意:因为对索引列使用函数会导致索引失效,如果查询时需要使用到索引,请使用MySQL DATE_SUB() 函数 查询当天的所有数据 SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=01 查询昨天的...

2018-05-11 11:10:56 21780 3

原创 Linux centos安装mysql

安装步骤 #解压 tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz #复制解压后的mysql目录 cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql #添加用户组 group...

2018-05-04 18:03:10 180 0

原创 springboot乱码问题汇总解决

请求参数乱码: 如果试遍了网上所说的所有方法,还是不行就修改启动虚拟机参数 IDEA 1.找到安装目录D:\IntelliJ_IDEA\IntelliJ IDEA 2017.2.4\bin 2.idea64.exe.vmoptions文件,如果是64位的就修改这个文件,否则就修改idea...

2018-04-10 18:08:24 836 2

原创 springboot把配置实体和配置文件关联

1.实体package com.tansen.study.springbootssm.bean;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframewor...

2018-04-10 15:50:30 509 0

原创 springboot无法读取mapper.xml的问题

记个坑,不知道为什么 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 搭建springboot项目的时候,报上面这个异常,说明是mapper.xml配置文件没加载,检查了各种配...

2018-04-06 22:47:16 2979 0

原创 邮件发送工具类

工具类package com.morning.star.pt.common.component;import com.morning.star.exception.CODE; import com.morning.star.exception.MorningStarException; impor...

2018-03-13 18:57:31 206 0

原创 MultipartFile文件上传

file的name为files @RequestMapping ("/publish") @ResponseBody public WebJsonBean publish(@RequestParam MultipartFile[] files) throw...

2018-03-09 17:07:38 1344 1

原创 AOP切面编程

注意:jar包版本必须和jdk版本一致,否则会出现错误 jdk1.8==>1.8<!-- aspectj 支持 --> <dependency> <groupId>aspectj</groupId> <artifactId&g...

2018-03-07 15:24:35 88 0

原创 ThreadLocal分析

ThreadLocal:线程局部变量在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。那么在有一种情况之下,我们需要满足这样一个条件:变量是同一个,但是每个线程都使用同一个初始值,...

2018-03-01 19:13:58 63 0

原创 <流程控制>shell学习之路(七)

if语句示例:a=10 b=20 if [ ${a} = ${b} ] then echo "a = b" elif [ $a > $b ] then echo "a > b" else echo "a < b&q...

2018-02-08 18:00:12 87 0

原创 <运算符>shell学习之路(六)

shell运算符包括 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用 变量和符号之间必须要有空格,否则就会按照原样输出 算数运算符 #!/bin/bas...

2018-02-08 14:06:00 93 0

原创 <传递参数>shell学习之路(五)

传递参数在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n $0 可以输出执行的文件名称 n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… #输出所有参数${*} echo "${*}" echo "传递的第...

2018-02-07 18:35:05 90 0

原创 <数组>shell学习之路(四)

定义数组 用括号来表示数组,数组元素用"空格"符号分割开,长度不限制。如下 address=("ShenZhen" "ChangSha" "ShangHai") 也可以单一去定义,但是下标可以是整数或算术表达式...

2018-02-07 18:33:23 75 0

原创 <字符串操作>shell学习之路(三)

字符串类型 str="ABCDEFG" 使用单引号和双引号定义都可以,区别如下: 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号的优点: 双引...

2018-02-07 18:32:34 117 0

原创 <变量和操作变量>shell学习之路(二 )

定义变量 name="zhangsan" age=23 注:变量名、等号、值之间不能有空格 使用变量 echo $name 这样写一般情况下能显示,最好的习惯是使用${name} 如果$name 如下情况会不显示 name="java" echo...

2018-02-07 17:26:42 115 0

原创 <hello world>shell学习之路(一 )

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 通常所说的 shell 通常都是指 shell 脚本,但是shell 和 shell script 是两个不同的概念。 在一般情况下,不区分 Bourne Shell 和 Bourne Again She...

2018-02-07 15:22:24 98 0

原创 Thread中start()与run()的区别

在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡:   创建:当new出线程对象,并没有调用该对象的start方法,这是线程处于创建状态。   就绪:当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,只是告诉CPU...

2018-01-09 16:28:51 5331 0

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