自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

重口味码农

常与同好争高下 不与傻瓜论短长

原创 SpringBoot中Druid框架监控配置及常用扩展

在SpringBoot项目中,通过配置实现对SQL执行情况、连接池情况的实时监控,方便定位问题。

2020-06-18 21:57:07 72

原创 服务端性能监控最佳实践(四):nginx-module-vts监控nginx流量
原力计划

服务端性能监控(四):nginx-module-vts监控nginx流量文章目录服务端性能监控(四):nginx-module-vts监控nginx流量简介添加nginx-module-vts模块1. 下载2.编译nginx 并添加该模块编辑nginx.confprometheus + grafana各个监控项的含义简介这个系列的第一篇中分享了使用nginx-lua-module监控Ngin...

2020-03-30 20:20:25 499

原创 服务端性能监控最佳实践(三):Spring Boot Actuator接入到grafana
原力计划

服务端性能监控(三):Spring Boot Actuator接入到grafana上一篇文章中,分享了Spring Boot Actuator这一强大的组件在监控中起到的作用,但如何利用好这些指标,还需要借助两个工具prometheus和grafana。借助他们,可以将/metrics暴露出的数据,做成可视化图表。组成炫酷的仪表盘,只需要几个简单的步骤。阅读本文需要三分钟Spring ...

2020-03-27 20:59:22 392

原创 服务端性能监控最佳实践(二)—— Spring Boot Actuator介绍
原力计划

服务端性能监控最佳实践(二)—— Spring Boot Actuator介绍文章目录服务端性能监控最佳实践(二)—— Spring Boot Actuator介绍给一个Maven项目增加Actuator介绍Endpoints查看所有endpoints配置endpoints的开关重要的endpoint/actuator/httptrace/actuator/mappings/actuator/m...

2020-03-27 00:35:56 155

原创 服务端性能监控最佳实践(一)—— 炫酷的Nginx请求分析监控

在服务端性能监控领域中,Nginx是其中非常重要的一部分,不仅仅是因为它是所有请求的入口、必经之处。还因为它的日志包含了请求的关键信息,像每次请求的返回状态码、处理时间,从这些信息里面,能分析出请求的处理情况,从中定位到有问题的请求,为我们的性能优化提供很重要的参考。 网络上常见的Nginx监控,一般是通过nginx-module-vts模块,使用这个模块,只能获取到部分数据, 对请求分析帮助有限。 本文通过lua脚本的形式,通过简单的配置,能给nginx带来详细的请求分析。

2020-03-23 21:42:56 275

原创 dockerfile-maven-plugin使用指南

dockerfile-maven-plugin使用指南最近在将应用部署到容器平台,需要在打包时生成docker镜像,在网上首先搜到了docker-maven-plugin这个插件,但使用起来很麻烦,在maven和dockfile都要做很多额外的配置。后来在官方Github看到作者推荐使用dockerfile-maven-plugin这个新的插件,于是替换成这个,但这个插件在网上的相关资料较少。在...

2019-11-07 17:49:32 9029

原创 RestClient的TimeOut和Can't assign requested address问题排查及解决

RestClient的TimeOut和Can’t assign requested address问题排查及解决问题背景TimeOut问题在项目中用到了es,因为请求比较简单,所以使用了官方提供的Elasticsearch Java Low Level REST Client作为客户端,但在最近优化es操作的过程中,使用了并行操作+异步请求的方式,在请求数量较大时,performReques...

2019-09-24 16:56:55 472

原创 谈一谈JAVA里有哪些语法糖

谈一谈JAVA里的语法糖上周在听大牛分享JVM编译优化时,提到了在编译阶段会进行的一个步骤:解语法糖。他提出了一个问题是:JAVA里有哪些语法糖,听到这个问题,似乎很容易回答,因为我们都知道java有很多语法糖,但话到嘴边,也就只能想起字符串拼接和foreach来,果然,没有经过系统的梳理,一些听起来简单的知识点也会难倒你,所以我来梳理一下,看java里到底有哪些语法糖。概述在搜狗百科中,语...

2019-09-24 16:53:33 325 2

原创 fail-fast机制解读(为什么foreach不能增删集合)

平时经常会有一些对集合的增删场景,那么普通for循环、foreach、迭代器它们会有一些什么区别呢?fail-fast机制又是怎么体现的呢?这篇文章从源码和应用的角度进行了全面的分析。

2019-07-04 11:36:35 389 1

原创 七麦js破解(最新)

昨天发现七麦爬虫又又失效了,以为和上次一样,秘钥又改了,所以先去咨询了几个博主大佬,但大佬没有时间,所以自己搞了一下。先声明我这篇是站在前人的肩膀上参考了很多博主:https://lengyue.me/index.php/2018/10/15/qimai/comment-page-1/#comment-570https://blowingdust.com/encrypted-com...

2019-06-18 11:29:36 3172 14

原创 Spring中@Transactional的使用及事务源码分析

@Transactional Spring事务源码分析本文讲解了Spring中最常用的注解@Transactional的各项属性的用法,分析了编程式事务和声明式事务的区别。并在源码的基础上分析了事务的实现机制,对了解事务的使用、彻底理解事务的实现颇有帮助。

2019-06-13 16:44:17 4269 2

原创 switch(String)语法糖解析

switch(String)语法糖解析Java1.5之前,switch语法结构仅支持int, byte, short, char这几个基本类型(及对应的包装类型)。1.5后提供了enum枚举结构。Java7提供了switch(String)结构。问题一经常听到Java7中提供的switch(String)是Java语言的一个语法糖,实际JVM并不支持这个语法结构,但这个语法糖具体是怎...

2019-06-04 11:01:22 1197 1

原创 JAVA集合框架探究(二)

JAVA集合框架探究(二)文章目录JAVA集合框架探究(二)一、SubList源码解析1、SubList2、get set3、add4、rangeCheck5、rangeCheckForAdd6、checkForComodification二、ArrayList源码解析1、构造方法2、add3、remove3.addAll4.grow5.indexOf一、SubList源码解析在上一篇Abs...

2019-05-31 16:41:08 51

原创 JAVA集合框架探究(一)

JAVA集合框架探究(一)集合框架是日常开发中使用最多的,但是我对它还一知半解。在具体应该选择哪个容器使用时往往不能确定,因为对它的实现细节不够了解。所以准备通过查看文档和源码的方式对每个集合框架加深理解。首先会从总体框架上进行梳理,然后再具体到每个集合类进行分析。文章目录JAVA集合框架探究(一)一、概述1、Collection2、List3、Set4、Queue5、Map二、Abst...

2019-05-31 16:40:11 75

原创 Java中成员变量的隐藏

Java中成员变量的隐藏前几天看一篇文章,里面提到了成员变量的"重写"问题,刚看到的时候我非常疑惑,难道成员变量不是和方法一样的重写机制吗?结果当然是啪啪打脸。这个知识点确实是我的知识误区,因为我记得当初学Java的时候讲多态,主要提到了方法的重写体现了Java的多态性,没有提到过成员变量在继承中是如何变化的。(也许任老师讲过,我忘了。。)。平时开发时,在子类声明同名的成员变量,看到的效果是会覆...

2019-05-31 16:21:47 962 6

原创 代码整洁之道笔记(二)

一、格式(一)、垂直格式尽量用200~500行为单个文件。源码应该像报纸一样:上面是大纲,下面是细节。最顶部应该是高层次概念和算法,细节应该依次向下展开,放在我们代码里意思就是:public方法应该放在上面,private方法应该放在下面。应该是一个总分结构。概念上垂直方向的区隔代码中是需要一些空行的,方法间必须要有空行,方法中:两段功能不同的代码中也需要空行,以区别不同的代...

2019-03-18 20:59:02 72

原创 基于Spring boot2的服务注册发现与调用

基于Spring boot2的服务注册发现与调用最近在尝试使用Spring cloud构建微服务组件,参考了许多文档与博客,但在这个过程中发现了一个问题,网络上的文档等大多是基于Spring boot1.5的,Spring boot在升级到2.*之后,Spring Cloud组件相关配置方式发生了许多变化,按照原有的配置方式会出现很多错误,所以记录下基于Spring boot2的配置过程。并对...

2019-03-18 20:45:09 1098 3

原创 代码整洁之道笔记(一)

文章目录一、有意义的命名1. 名副其实2. 避免误导3. 做有意义的区分4. 使用读的出来的名称5. 使用可搜索的名称6. 避免使用编码7. 类名8. 方法名9. 每个概念应该对应一个单词10. 不用双关语11. 使用解决方案领域名称,实在不行使用所涉及领域的名称12. 添加有意义的语境二、函数1. 短小2. 只做一件事3. 每个函数一个抽象层级4. switch语句5. 使用描述性的名称6. 函...

2018-10-12 08:47:44 205 1

原创 Redis应用场景分析

在上一篇文章《Redis数据结构探究》中,对Redis的五种数据结构和它们的底层实现进行了分析,这篇文章主要结合近期应用Redis的经历,对Redis的使用场景做出分析。在上篇文章中,简单总结了Redis有以下应用场景:1、缓存服务这是Redis应用最广泛的部分,用于减小数据库访问压力,提高系统并发量,逻辑也比较简单。select时,如redis中无此数据,则查询数据库并插入...

2018-07-05 11:40:29 1454 2

原创 Redis数据结构探究

1、与其他数据库的对比最近系统中引入了Redis,在应用中发现Reids具有关系型数据库或其他缓存服务器所不具备的优点。 与关系型数据库如Mysql相比,Reids属于非关系型数据库,类似于Nosql,不同数据之间不需要有关联关系。 memcache也可以用来存储键值映射,同是对内存操作,和Redis性能差别不大,但是Redis具备以两种形式将数据写入硬盘的能力,并且除了存储普通的字符串键...

2018-07-03 16:48:15 339

原创 修改DLL文件内容

今天帮人修改一个网站。asp.net的,遇到一个奇怪的问题,某个页面的title总是改不掉,以前遇到这种问题,一般是为了防止盗版,写在某段js里的混淆代码。或是发起请求从别的地方获取的title。 所以采用了两种方法调试:文件搜索title名,如果写在js里肯定可以被搜索到,但是没有。查看页面请求,也没有异常请求。由于刚入门.net,没有意识到可以静态调试,好方便。所以在cs文件里又修改了t

2017-12-20 20:02:27 11879

原创 position为fixed时设置z-index失效

作为一个假的前端,在调试一个页面时出现了如下bug。 左侧的菜单固定为fixed时,二级菜单无法设置有效的z-index,导致菜单隐藏在页面元素之下,明明页面元素的z-index是1,但是无论把菜单的z-index设置为多大,都不管用。查阅了资料,原来谷歌浏览器在设置position:fixed;后会触发元素创建一个新的层叠上下文,并且当成一个整体在父层叠上下文中进行比较。如上面的dom结构,当给

2017-11-17 15:00:45 13726 3

原创 2018秋招面经-后端开发

博主渣渣本科,挣扎到十一月秋招终于结束了。面过百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子。期间总结了一些面试题目,现在放上来。由于是博主自己的面经记录,所以涵盖不全面的话诸位请谅解。 根据博主的面试经验来看,面试有一定的层次性,如bat级别公司每个点都会深入,而有些公司则只会问到表层,所以将每个领域都分为必须掌握和深入了解这两个部分。一、计算机网络基础部分TCP报头格式UDP报头格

2017-11-08 15:37:15 17757 751

转载 一台电脑上的git同时使用两个github账户

需求:公司有github账号,自己有github账号,想在git上同时使用,两者互不干扰。思路:管理两个SHH key。解决方案:一、生成两个SSH key为了举例方便,这里使用“one”和“two”两个账户。下同。$ ssh-keygen -t rsa -C “one@gmail.com”$ ssh-keygen -t rsa -C “two@gmail.com”不要一路回车,分别在第一个对话的时

2017-09-12 11:35:55 713

原创 angularjs 通过http下载php生成的excel的方法

使用PHPExcel插件的同学们都知道,导出excel是直接将生成内容修改content-type来将内容作为文件下载的,这时候需要页面上有一个url,通过点击来下载。 那么问题来了,如果在生成excel时有请求参数,只能通过js的http请求,这时候怎么下载呢?研究了一下,有以下集中方式:angularjs创建a标签模拟下载。// 创建a标签模拟下载function exportEx

2017-09-07 20:04:35 770

原创 php_zip扩展安装过程

最近在使用PHPExcel的时候,在本地的windows环境下没问题,提交到linux中,excel2007就会出现问题,原来excel2007使用了php的zip扩展\ZipArchive,但一般没有安装此扩展,记录一下安装过程。安装过程下载 cd /usr/src wget http://pecl.php.net/get/zip-1.5.10.tgz (具体版本请到pecl.php.net

2017-09-05 15:07:28 4277 2

原创 剑指offer-字符流中第一个不重复的字符

题目> 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符题解 使用索引数组代码<?phpglobal $result;//Init module if you n

2017-08-23 21:25:40 401

原创 剑指offer-判断二叉树是否对称

题目 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。题解 递归判断二叉树两侧。代码<?php/*class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){

2017-08-23 21:18:08 422

原创 剑指offer-二叉树的下一个节点

题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。题解 分为三种情况: 1、pNode有右子树时,则下一个应该是pNode的右子树的最左节点。 2、pNode没有右子树,且pNode为它的父节点的左子树,则它的下一个节点为PNode的父节点。 3、pNode没有右子数,且pNode为

2017-08-23 21:10:07 304

原创 剑指offer-判断平衡二叉树

题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。题解 两个比较重要的部分:首先左右子树相差不大于1。然后所有子树都要为平衡二叉树。代码<?php/*class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ $thi

2017-08-23 21:03:10 598

原创 剑指offer-字符串左移

题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!题解 有几种解法。主要是使用substr函数。可以看出最终字符串分为两个部分,把这两部分拼接起来

2017-08-23 20:06:23 528

原创 剑指offer-和为s的数列

题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续

2017-08-23 19:57:17 791 9

原创 剑指offer-连续子数组的最大和

题目 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至

2017-08-22 22:02:56 726

原创 剑指offer-统计一个数字在排序数组中出现的次数-PHP

题目 统计一个数字在排序数组中出现的次数。题解 1、既然是排序数组,使用二分查找是效率最高的。找到之后再向两侧拓展一下。代码<?phpfunction GetNumberOfK($data, $k){ if(count($data)==0){ return 0; } $index = 0; $low = 0; $high = co

2017-08-22 22:01:53 990

原创 剑指offer-包含min函数的栈

题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。题解 四个功能: push pop top:栈顶元素 min:找出最小的元素代码<?php$arr = array();function mypush($node){ // write code here global $arr; array_push($arr,

2017-08-22 21:52:19 715

原创 剑指offer-用两个栈实现队列

题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题解 初始化两个栈。 push:压入栈1. pop:栈2不为空时,栈2出栈,栈2为空时,将栈1元素全部出栈压入栈2,栈2出栈。代码<?php$arr1 = array();$arr2 = array(); function mypush($node) {

2017-08-22 19:38:21 564

原创 剑指OFFER-二进制中1的个数

题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题解 这是个位运算的题目。 解法一:可以通过按位与操作,通过将每一位和1与操作来求出1的个数。 解法二(最优解):一个巧妙的方法,一个不为0的二进制数,肯定至少有一位是1,当这个数减一的时候,它的最后一位1会变为0,后边的所有0会变为1。比如10100,减一之后会变为10011,然后用原数字10100和100

2017-08-22 16:23:31 366

原创 angularjs变量的复制

因为学习数据可视化,最近接触了一些前端,用的是angularjs+bootstrap超级组合。没想到前端现在已经这么强大了,我还活在jq时代,看文档的时候惊呆了。尤其是数据绑定,写起来很爽啊。妈妈我再也不用改dom了。【bug】遇到一个很诡异的bug,差不多是这样。old = 1;new = old;然后修改new的时候,old也变化了,因为当时在考虑angularjs的数据绑定机制,所以以为这两

2017-08-18 18:02:17 775

原创 angularjs数组判断是否含有某个元素

也就是in_array函数,判断数组中是否含有某个元素。 Array.prototype.in_array = function(e) { for(i=0;i<this.length;i++) { if(this[i] == e) return true; } ret

2017-08-18 17:50:07 10009

原创 利用139邮箱的免费短信提醒作为报警接口

各位开发者手机短信里肯定都收到过线上业务报警短信,邮箱里肯定有更多报警邮件,很多公司都把报警信息通过邮件发送,但是这样不能保证接收到。通过短信发送的话,即使很多短信接口很便宜,但是每条也有四五分钱,而且报警信息通过不会单个出现,所以,万一bug集中出现,就亏大了。然后我发现了个神器,以前一直没有注意的垃圾信息:移动提供的默认139邮箱,每次收到邮件都会发送免费短信,既然这样,为何不把报警邮件发到13

2017-08-18 17:33:45 7826

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