- 博客(100)
- 资源 (41)
- 收藏
- 关注
原创 Linux more cat head tail命令
Linux more cat less head tail命令more命令cat命令功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入more命令more -5每页显示5行,空格进行翻页,Enter键是显示下一行。more
2020-12-16 23:07:30
492
原创 Linux中根据访问日志统计访问量最高的前N个IP
背景Linux脚本考察,一个文件里存了很多日志,每行IP开头,需要统计出排名前几的IP。主要考察Linux命令的熟悉度答案awk '{print $1}' log|sort |uniq -c|sort -nr -k 1|head -n 3测试数据128.233.172.181 view1136.233.172.182 view1128.234.172.181 view2128.233.172.183 view1136.233.172.182 view1128.23
2020-12-15 00:10:08
1746
原创 tomcat启动时使用application.yml指定环境的配置
首先:yml文件建立三个环境配置这个略过第二:pom.xml文件的build标签下面添加这么一段配置 <profiles> <profile> <id>dev</id> <properties> <!-- 环境标识,需要与...
2018-07-31 10:57:39
11952
2
原创 wrk压测工具的使用
wrk压测的git地址:https://github.com/wg/wrkwrk安装:直接下载然后解压之后进入目录然后make编译即可。get请求:./wrk -t1 -c400 -d200s http://www.baidu.com参数-t代表线程数-c代表连接数-d代表请求持续时间发送post请求时需要编写一个lua文件wrk.method = "POST"wrk.body = '{"pus...
2018-05-23 17:52:00
932
转载 基于redis脚本实现安全的分布式锁
最近项目中需要用到一个分布式的锁,考虑到基于会话节点实现的zookeeper锁性能不够,于是想使用redis来实现一个分布式的锁。看了网上的几个实现方案后,发现都不够严谨。比如这篇:用Redis实现分布式锁里面设计的锁有个最大的问题是锁的超时值TTL会一直被改写,“尽管C3没拿到锁,但它改写了C4设置的锁的超时值,不过这一点非常微小的误差带来的影响可以忽略不计”,其实在高并发的时候会导致进程“饿死...
2018-02-28 10:56:46
1078
原创 深入理解Java内存模型系列文章
深入理解Java内存模型(一)——基础深入理解Java内存模型(二)——重排序深入理解Java内存模型(三)——顺序一致性深入理解Java内存模型(四)——volatile深入理解Java内存模型(五)——锁深入理解Java内存模型(六)——final深入理解Java内存模型(七)——总结...
2018-02-24 13:50:29
666
原创 三种方式实现限制IP访问
方式一:Linux防火墙实现#阻止所有IP访问iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j DROP#然后再添加白名单iptables -A INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT###############或者###########iptables -A INPUT -s
2018-02-05 18:31:08
32332
1
原创 三种方式实现生产者和消费者模式
方式一:同步关键字实现//用同步实现wait/notifyAllpublic class Stroge { private LinkedList list; private int maxSize; public Stroge(LinkedList list, int maxSize) { this.list = list; this
2018-02-05 18:23:29
4987
转载 斐波那契数列Java三种实现
关于斐波那契数列在百度百科上的定义如下: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)百度百科关于斐波那契数列的来源请参见兔子问题根据其定义我们可以很方便的构建出该数列的数据结构实现。实现一:基于递
2018-01-29 17:57:08
9294
原创 Mysql常用存储引擎介绍
查看当前数据库支持的存储引擎[sql] view plain copySHOW ENGINES 结果如下:MySQL中常用的几种存储引擎:InnoDB、MyISAM、Merge、MEMORY以及这几个引擎的讲解1、InnoDB存储引擎InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyI
2018-01-22 14:45:57
684
原创 Java线程池ThreadPoolExecutor参数解析
ThreadPoolExecutor构造函数public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, T
2018-01-04 12:10:47
1089
原创 Java中Executors类中几种创建各类型线程池的方法及实例
Executors:提供了一系列静态工厂方法用于创建各种线程池。1.Executors.newCachedThreadPool创建可变线程池如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。核心线程池大小为0,最大为Integer.MAX_VALUE,线程空闲存活时间是60秒。示例代码:ExecutorService cachedThreadPool =
2018-01-03 19:33:17
3174
原创 对象转Json字符串时,忽略指定属性
1、FastJson转Json字符串时,忽略指定属性1.1使用注解@JSONField以下Beanpackage com.gomefinance.esign;import com.alibaba.fastjson.annotation.JSONField;import lombok.Getter;import lombok.Setter;import java.io.Ser
2017-12-09 21:47:20
44941
原创 OkHttp实现延时重试
场景分析很多项目由于有callback,且失败重试和重定向需求,因此需要实先OkHttp失败重试解决方案package com.gomefinance.esign.httpretry;import lombok.extern.slf4j.Slf4j;import okhttp3.Interceptor;import okhttp3.Request;import okhttp3
2017-09-30 18:04:53
10931
2
原创 实现HttpClient重试
场景应用目前程序中涉及到需要callback操作,product需要被动的接收consume的处理状态,为了最大程度的能够callback成功因此consume在http调用出现问题(如:服务不可用、异常、超时)情况下需要进行重试(retry request)。1、针对异常的重试例如:connect timed out/read timed outHttpClientBuilder
2017-09-30 16:46:06
11131
2
原创 使用rabbitmq 实现延迟消费
使用场景介绍1、发版时经常需要不停机发版,遇到mq消费者,消费一半停机就会出现消息丢失(没有使用手动确认的情况)2、例如支付场景,准时支付、超过未支付将执行不同的方案,其中超时未支付可以看做一个延时消息。3、例如滴滴、淘宝的自动评价都是类似场景(不一定是用的什么技术)我是发版的情况遇到了可能有人会问了,mq支持手动确认啊,为什么不使用确认机制呢?1、由于用的是Spring
2017-09-30 15:38:52
11370
原创 Java校验文件是否损坏
经常在程序操作文件时,遇到文件以及损坏的问题,那么如何校验文件是否损坏呢?这就需要Apache Tika包了,maven引用如下: org.apache.tika tika-parsers 1.16 org.apache.t
2017-09-04 16:36:35
10245
4
原创 Linux查看CPU和内存(一)----top命令
top命令简介在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。top命令是Linu
2017-08-28 17:26:20
734
原创 mysql列的值默认不区分大小写
现象:SELECT * FROM econtract_signature WHERE contract_id='mj201707191900111744_14'SELECT * FROM econtract_signature WHERE contract_id='MJ201707191900111744_14'这两个语句查出的数据是一样的。解决办法是:可以在查询条件前加BINARY
2017-08-03 08:34:17
560
原创 Java在linux上只能在程序的当前目录下创建文件/文件夹导致的问题
Java在linux上只能在程序的当前目录下创建文件/文件夹,导致正常在Windows运行正常的程序,到linux上,如果创建的目录不在当前程序执行目录下会提示:Permission denied解决也很简单,增加以下代码即可:File f=new File("/home/sxl/out");f.setWritable(true, false);
2017-08-03 08:00:13
6240
1
原创 Idea最优方案
修改Idea目录的bin下的idea64.exe.vmoptions文件启动和加载项目速度明显加快很多-server-Xms2g-Xmx2g-XX:NewRatio=3-Xss16m-XX:+UseConcMarkSweepGC-XX:+CMSParallelRemarkEnabled-XX:ConcGCThreads=4-XX:ReservedCodeCacheS
2017-06-01 10:53:42
3290
原创 IntelliJ IDEA操作
1.如何显示工具栏、状态栏等这些功能菜单都在View菜单下面2.如何清理工程这个是在File菜单下Invalidate Caches / Restart...3.如何项目的全文搜索这个是在Edit菜单下的Find中的Find in Path4.如何搜索类双击shift键即可
2017-06-01 10:34:15
1036
原创 Linux下安装JDK的方法
1、首先卸载原有的JDK查看JDK版本rpm -qa | grep gcj可能的结果是:libgcj-4.1.2-42.el5 java-1.4.2-gcj-compat-1.4.2.0-40jpp.1152、卸载原有JDKyum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115如果这中方法不行,可以使用如下的方
2017-05-23 10:38:34
376
原创 SpringBoot小问题记录
使用SpringBoot启动,访问Controller时出现以下问题页面:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed Dec 14 16:35:25 CST 2017There was an une
2017-05-03 21:58:20
1293
原创 二叉树遍历解析
一、简述今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,画出来二叉树,然后根据各种遍历不同的特性来求,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 访问顺序:根>>左子树>>右子树 中序遍历: 访问顺序:左子树>>根>>右子树 后序遍历: 访问顺序:左子树>>右子树>>根二、示例1、已知前序、中序遍
2017-02-09 20:01:12
754
原创 Spring与MongoDB
1、MongoDB的配置spring.xml文件: <property name="threadsAllowedToBlockForConnectionMultiplier" value="2000"/> application.properties文件:#
2017-01-05 22:27:15
2244
3
原创 VMware虚拟机安装vmware-tool
注意:安装前确保你是root用户1、安装虚拟机后通过点击左上角的VM/虚拟机--->install VMware tools ,虚拟机会弹出一个光盘如下图2、双击打开光盘,会弹出安装包。解压安装包之后,找到VMware-tools-distrib,进入其所在目录下,可以ls查看里面的东西,然后 ./vmware install.pl 就进入安装过程了。就按步骤一步一步来
2016-12-04 10:58:51
1631
原创 更改Centos6的yum源
1、阿里云Linux安装软件镜像源阿里云是最近新出的一个镜像源。得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/第一步:备份你的原镜像文件,以免出错后可以恢复。mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-
2016-12-04 10:57:46
23134
原创 tomcat远程debug
1、更改tomcat远程调试端口tomcat/bin目录下的catalina.sh文件,找到JPDA_ADDRESS=”8000”,8000代表远程调试端口,为默认值。可以更改成其他没有被占用的端口,更改完成后保存退出。大概在260行左右2.以debug模式启动Tomcat进入tomcat/bin目录,输入命令启动tomcat./catalina.sh jpda
2016-10-30 11:20:34
693
原创 Linux下文件操作的常用命令
1、新建命令vi vim touch 加一个不存在的文件名都是新建一个文件不同之处在于:touch只是新建,不打开,执行之后就存在这个文件了。而vi/vim执行之后直接打开,如果之后不保存退出,该文件就不存在。vi/vim新建的示例:左下角的new file就表示该文件为新建文件。2、查看命令tail命令tail -n 100 install.log 查看
2016-10-30 11:01:48
408
原创 Java常用GoF设计模式之一装饰者模式
装饰模式使用被装饰类的一个子类的实例,把客户端的调用委派到被装饰类,装饰模式的关键在于这种扩展是完全透明的。定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必
2016-10-25 11:56:06
436
原创 Java常用GoF设计模式之一代理模式
1、代理模式的概念所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。2、代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。3、代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同
2016-10-22 20:56:51
483
原创 Java常用GoF设计模式之一模板模式
模板模式中的方法模板方法中的方法可以分为两大类:模板方法和基本方法。 模板方法 ● 一个模板方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或一个总行为的方法。 ● 一个抽象类可以有任意多个模板方法,而不限于一个。每一个模板方法都可以调用任意多个具体方法。 基本方法 基本方法又可以分为三种:抽象方法(Abstract Method)、具体方法(Concr
2016-10-21 18:03:59
476
原创 Java常用GoF设计模式之一单例模式
单例模式概念及特点 java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例(应用比较少,不做介绍)三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。懒汉式单例模式一(方法加锁):package cn.gof.singleton;/
2016-10-21 16:54:59
529
转载 rabbitmq集群搭建
集群概述 通过 Erlang 的分布式特性(magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。 这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本文中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能
2016-10-14 11:28:14
1186
转载 TCP/IP协议与UDP协议
TCP/IP协议TCP/IP是“传输控制协议/因特网协议”的缩略语,指的是一些主要协议中的两个协议,这些协议也被称为因特网协议簇。TCP/IP协议可为任意的计算机系统提供网络连接,其连接可以跨越不同的网络介质、应对可能的不利条件。因特网的一个基本设计目标是允许广泛的网络特质,接纳诸如带宽、延时、丢包、包失序以及数据包的最大长度方面的不同。另一个目标是健壮性,能应对单个网络、网关和主机的
2016-10-14 10:25:48
1101
原创 jsonp实现json数据跨域访问
为什么会出现json数据跨域访问限制?这是因为所有支持Javascript的浏览器都会使用同源策略这个安全策略。看看百度的解释:同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当一个百度浏览器执行一个脚本的时候会检查这个脚本是属于
2016-10-13 16:42:16
4917
原创 session机制及session的应用
session简介Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。使用上比Cookie简单一些,相应的也增加了服务器的存储压力。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。如果说Cookie机制是通过
2016-10-12 18:09:36
1444
solr-dataimporthandler-scheduler-1.1
2016-09-08
solr定时增量更新索引所需jar包
2016-09-08
Jquery操作select标签例子
2016-06-28
redis-desktop-manager-0.8.8
2017-09-30
Findbugs 1.0.1
2017-09-01
solr6--solr-dataimporthandler-scheduler-1.1
2016-09-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人