- 博客(132)
- 资源 (6)
- 收藏
- 关注
原创 Spring Data Elasticsearch 方法名创建查询的实现原理
1.jdk动态代理生成了代理类org.springframework.data.elasticsearch.repository.support.NumberKeyedRepository@31880efa2. 通过反射拿到自己写的方法 List<Item> findByPriceBetween(double price1,double price2);(在这种会判断方法名...
2020-02-19 15:39:52 543
原创 阿里云服务器关于端口开放的坑
阿里云控制台加入端口:9200后,需要在服务器执行以下命令:iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPTiptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT # 删除防火墙规则,内容一样把 -...
2020-02-18 12:48:56 1394
原创 springboot日志输出整合slf4j
1.先引入依赖: <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <depen...
2020-01-30 17:14:04 1464
转载 实例解读什么是Redis缓存穿透、缓存雪崩和缓存击穿
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,...
2019-05-28 09:29:52 121
原创 redis使用入门
使用入门获得一个符合匹配规则的键名列表keys pattern [? / * /[]]keys mic:hobby判断一个键是否存在 , EXISTS key type key 去获得这个key的数据结构类型各种数据结构的使用字符类型一个字符类型的key默认存储的最大容量是512M赋值和取值SET key valueGET key递增数字...
2019-05-24 18:03:44 191
原创 如何查找源码中成员变量被赋值的哪个实现类
在看activemq的 textMessage.acknowledge();方法时,实现类为:ActiveMQMessage acknowledge()其中的acknowledgeCallback 的赋值没有在本类中,先找到 setAcknowledgeCallback然后右键查找在哪里赋值:即找到了具体的赋值: ActiveMQMessageCons...
2019-05-22 15:13:17 398
原创 联合索引什么时候使用,什么时候失效?
建表语句:Create Table CREATETABLE`sys_msg`( `MsgId`bigint(20)NOTNULLAUTO_INCREMENT, `MsgContent`varchar(500)DEFAULTNULL, `MsgTime`datetimeDEFAULTNULL, `MsgStatus`...
2019-05-14 16:07:31 4873
原创 http请求工具类导致的性能问题
上线前的压测问题:第一版的httpClient请求工具类:1.由于把地址写成全局变量,每次调用其他系统的接口时:httpClient.setAddress("136.224.224.36"),httpClient.post(); 这种方式导致上一次的请求地址没有被变更,然后请求参数和请求地址不匹配,导致混乱。第三方的系统接收到的参数不正确。2.当压测进行接口压测的时候,2、3...
2019-05-13 10:58:18 969
原创 配置中心的理解
是用zookeeper做为配置中心的话,通过节点存储control-switch的值。程序中使用watcher进行监听zk中的值得变化。这样通过修改zk中的值程序就可以改变。不需要重新发布程序。!!!!!!!!很好用的配置...
2019-05-10 16:17:58 470
原创 框架中的高大上设计为了啥?
源码中经常看到调用本类中的抽象方法,运行时才知道是哪个实现类。但是我们看源码时不知道是哪个实现类,需要debug进行查看到是哪个实现类!!!!源码中为啥会用好多设计模式如:模板,委派,装饰者,责任链,工程模式等。例如在netty中:Bootstrap b = new Bootstrap();ChannelFuture f = b.connect(this.host, this.port...
2019-05-08 16:40:19 125
原创 API安全问题
解决方案:其中防止窃取可以用:RSA非对称加密算法,使用公私钥进行加解密MD5一般使用加盐(字符串)方法,前后台统一盐。token授权:主要使用拦截器对所有方法进行校验token,token可以存到redis中加时效校验。能够防止一定得爬虫。微信、qq、钉钉等的登陆中都使用到了access_token进行校验,在登录时生成传到第三方进行存储。...
2019-05-06 18:09:55 1169
原创 集合遍历删除
public class test { public static void main(String[] args) { List<Integer> a = new ArrayList(); a.add(3); a.add(4); a.add(5); a.add(6); for ...
2019-04-28 11:00:56 107
原创 IO流中while 和if的区别
BIO服务端:public class BIOServer { ServerSocket server; //服务器 public BIOServer(int port){ try { //把Socket服务端启动 server = new ServerSocket(port); System.out.println("BIO服务已启动,监听端口是:" + p...
2019-04-28 10:08:33 397
原创 BIO和NIO原理
NIO中主要包括:1.ServerSocketChannel:通道;2.Selector:选择器;3.buffer:缓冲区(这个buffer是io包下,和StringBuffer不一样)Buffer的主要属性:直接缓冲区:ByteBuffer buffer = ByteBuffer.allocateDirect(1024); 将文件拷贝到内存中,而不是jvm中,...
2019-04-22 10:38:12 157
转载 Java实现大文本文件拆分
生成大文件import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class CreateFiletest { public static void createBigFile() throws IOExc...
2019-04-12 14:46:25 766
原创 idea打war包
今天idea打war包发现前端页面没有放到war包中,需要进行配置,不然idea默认不把这两个文件夹以外的文件打包。未配置打包为:配置后打包为:设置方法参考:https://blog.csdn.net/github_38336924/article/details/82422888...
2019-03-26 17:12:51 374
转载 access.log日志过大也会导致web性能下降
你知道吗?nginx默认的access.log日志文件过大,也会导致网页打开速度慢。要解决这个问题可以看下面的文章方法一:直接删除access.log日志。然后重启下就会生成新的access日志。如果你不打算要这个日志也可以修改nginx配置,将日志丢入/dev/null 中。找到access_log /home/wwwlogs/access.log access;改成access_l...
2019-03-26 17:08:54 8693
转载 使用 JavaMailSenderImpl SSL 465 发送邮件
使用 JavaMailSenderImpl 发送邮件时,阿里云和华为云不支持smtp 25端口,改用ssl 465端口发送才好使===========================================================================package org.apache.log4j;import org.springfram...
2019-03-15 17:28:29 1964 1
转载 linux查看redis安装目录 和redis关闭
如果命令 which 和whereis 都找不到安装目录,可使用以下办法 ps -ef|grep redis得到了进程号 xxxx然后 ls -l /proc/xxxx/cwd查看redis-cli 和redis-server的目录则使用whereis redis-cli 关闭redis. :1.先进入redis ./redis-cli 输入密...
2019-03-13 18:00:19 20257
转载 一段代码讲透Java所有编程规范(精华版)-转载
转载链接:https://blog.csdn.net/qq_35859844/article/details/88412611?from=timeline&isappinstalled=0本文参考了《代码整洁之道》,《阿里巴巴编程规范》,《华为编程规范》以及大量优秀的源码总结而来。简洁,优雅的代码根本不需要一行注释。这是一段根据条件查询订单列表的代码,咋一看好像没有什么问题。...
2019-03-12 10:31:26 244
原创 shell脚本编程1
前面学的 sed awk :其实是比较复杂的命令,相当于shell脚本功能,但是咱们暂时不学太深入;正则中用到的特殊字符: 第一个shell脚本:时间戳:将秒转为日期: 变量:脚本2:写法1:或者写法2: $0 :脚本本身名称 $1:第一个参数 $2:第二个参数 $3:第三个参数 $...
2019-02-21 17:12:22 242
原创 shell学习-awk
awk :分割 时,例如 root:x:0:0:root:/root:/bin/bash 用‘x’ 分隔之后 第一段为:root : 第二段为 :0:0:root:/root:/bin/bash输出第二段和第一段结果: 指定分隔符用法: OFS="@" ( 不是很常用) 精准匹配:$1=="root" ...
2019-02-20 17:46:16 130
原创 shell学习-sed
sed 1. 打印指定行如果需要打印行号:2.打印关键字 : 用// 包含root关键字 : '/root/p'可以使用特殊符号:* :星号 +号 -r 参数和 特殊符号: ? | () sed -e参数 :执行两个条件 调换两个字符位置: ...
2019-02-20 09:56:20 144
原创 shell学习-grep
主旨: grep 正则 示例: cp /etc/passwd 1.txt alias:别名使用: 此时使用grep 相当于grep --color -A -B -Cn$ :指以n结尾^a:以a为开头 [^0-9]: 指非0-9 -v:指的是不带 0-9 grep ...
2019-02-15 16:55:16 196
原创 shell学习-基本命令
一:环境变量1. 介绍/etc/bashrc 文件中的PS1变量的定义和修改后的情况:vim .bash_profile cat .bash_profile cat .bashrc 上面两个文件内容可以看出:执行bash_profile时,需要先执行 .bashrc(因此加操作最好加在bash_profile中,这样不会先加载bashrc,然后加载bash_...
2019-02-15 09:15:50 175
原创 shell学习-基本命令1
history :命令历史 !! :也是命令历史 !$:上一个命令的最后一个参数 !字符: !vi 或!if :指的是命令历史中的以 vi和if开头的命令 alias:通配符:重定向:> :重定向到a.txt中>>:追加到a.txt中<:反向重定向: mail -s "z...
2019-02-14 11:31:37 193
转载 jconsole 连接jmx失败 解决策略
JMX(JAVA 管理拓展)配合Jconsole来使用是用来分析JVM状态的必要途径。所以正确配置JMX很重要。配置主要包含以下几个步骤1、修改tomcat的实际启动脚本catalina.sh(startup.sh 里面其实是引用了这个脚本,虽然正常启动时用./startup.sh) CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management....
2019-01-23 14:25:09 1579
转载 美团网技术团队分享的MySQL索引及慢查询优化教程
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问...
2019-01-17 11:19:31 525
转载 axis2作为客户端产生大量文件的解决方案
问题:使用axis2调用远程webservice时,产生大量临时文件写入磁盘,降低程序运行效率,占用磁盘空间前提:使用axis2客户端版本:1.7.4解决方案:1:在初始化RPCServiceClient 使用构造器RPCServiceClient(ConfigurationContext configContext, AxisService service) 替换默认构造器在ws...
2019-01-07 15:36:18 682
原创 idea将项目导出为war包
首先 进入项目的配置页面,在Artifacts栏里点击绿色加号,选择Web Applicant:Archive 设置好名称和输出路径。Build on make选项可选可不选。如果选择了,那么每次在运行项目时都会生成war包。如果不勾选则可以在后续的步骤中手动生成war包。打包使用: ...
2018-12-19 17:01:37 241
转载 IDEA控制台乱码解决
解决办法: 打开Intellij的安装的bin目录(D:\Program Files\JetBrains\IntelliJ IDEA 14.0\bin ),找到上图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加: 1 -Dfile.encoding=UTF-8 配置项目编码及IDE编码进入se...
2018-12-19 10:55:21 246
转载 Linux下jdk和tomcat安装
查看linux位数: getconf LONG_BIT ,下载对应的安装包: 查看环境变量whereis javawhich java (java执行路径)echo $JAVA_HOMEecho $PATH二,安装选择要安装java的位置,如/usr/目录下,新建文件夹java(mkdir java)#mkdir -p /usr/java拷贝下载的jdk-8u31-l...
2018-12-18 11:14:52 140
转载 springboot 在linux后台运行
首先需要进到自己springboot项目的根目录,然后执行如下linux命令springboot 后台启动: nohup java -jar aaa-0.0.1-SNAPSHOT.jar >tea.log 2>&1 & nohup java -jar 自己的springboot项目.jar >日志文件名.log 2>&1 &命...
2018-12-18 10:15:36 350
原创 mysql 百万数据库多表联查查询结果40S以上,导致数据库表锁死
因此需要我们在设计表时注意表之间的关联性,我们这次锁表主要是多表联查时,导致了全表扫描,耗时44s,最后建立索引解决。刚开始未停机想加索引,但是加入不了表依然卡死,最后找DBA重启数据库才行。线上服务断了2小时左右,以后需要注意这点。上线时需要分析sql语句,看是否有全表扫描!!!!当数据库链接满了之后会导致没有连接,springboot报错:could not open JPA Entity...
2018-12-03 14:42:15 1252 1
转载 MongoDB 后台启动
mkdir /data/mongo/mongodb.cnf、配置 后台启动# vi /data/mongo/mongodb.cnfdbpath=/data/mongo/logpath=/data/mongo/mongo.loglogappend=truefork=trueport=27017后台启动命令mongod -f /usr/local/mongod...
2018-11-26 17:43:14 864
原创 mysql 数据库连接池查询
show full processlist;show open tables where In_use > 0;show processlist;select * from information_schema.processlist where db = '数据库名称' and command != 'Sleep' and Time >1000 ...
2018-11-15 20:48:07 9426 1
原创 nginx 将请求全部指向到一个页面
http{ upstream /tomcatserver{ sticky name =srv_id; #监听端口 server 127.0.0.1:8080; server 127.0.0.1:8081; } server{ listen 80; serve...
2018-11-14 18:24:08 7107
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人