123456789# tomcat access log configserver: tomcat: accesslog: enabled: true #是否开启日志 directory: /tmp/accesslogs/mobile-site #日志存储目录 pattern: '%t %a %A %m %U%q %s %D %I %B' #日志格式 prefix: access #日志文件前缀 rename-on-rotate: true #是否启用日志轮转
pattern的配置:
%a - Remote IP address,远程ip地址,注意不一定是原始ip地址,中间可能经过nginx等的转发
%A - Local IP address,本地ip
%b - Bytes sent, excluding HTTP headers, or ‘-’ if no bytes were sent
%B - Bytes sent, excluding HTTP headers
%h - Remote h ...
索引概述索引是一种可选创建的数据库对象,建立在表的一列或多列的辅助对象。可以将索引比喻成一本书的目录,通过目录我们能快速的找到我们所需的内容。而数据库索引的主要功能也就是用来提高查询速度以及完整性检查。书的目录将书的名称和页码作为目录,同样的,数据库的索引通常将列值连同ROWID存储在一起,ROWID包含了存储列值的表在磁盘中的物理位置(这里涉及到磁盘的存储方式等内容,学习后记得补上),通过ROWID,Oracle可以以最小的代价快速的检索到相应的内容。如果没有索引,数据库就必须进行全表扫描来查看是否包含数据。但是创建索引也有一定代价,一方面,列值修改的同时也要修改索引以确保索引与列值的相同,另一方面,索引也消耗了磁盘空间以及系统资源。因此创建索引时要保障其合理性。
B树索引通常创建的索引一般都是B-TREE(B树)索引,一般有聚集索引和非聚集索引。
网上有一结构图很形象的表示了B树的原理,参考如下:

索引有键值和逻辑指针构成。更节点 ...
Tomcat
未读前提说明为了确保服务不会被过多的http长连接压垮,我们需要对tomcat设定个最大连接数,超过这个连接数的请求会拒绝,让其负载到其它机器。达到保护自己的同时起到连接数负载均衡的作用。
动手去做一开始根据故障todoList提供的参数MaxKeepAliveRequests,进行验证,我们将tomcat配置server.xml修改为:同时,启动客户端模拟30个长连接。
预期应该只有10个连接能保持住。结果与预期不符,30个连接都连上了,而且正常。这由此怀疑提供的配置参数是否是真正限制最大连接数的含义了。KeepAlive是在HTTP1.1中定义的,用来保持客户机和服务器的长连接,通过减少建立TCP Session的次数来提高性能。常用的配置参数有{KeepAlive, KeepAliveTimeout, MaxKeepAliveRequests}。逐个说来:KeepAlive是决定开启KeepAlive支持;KeepAliveTimeout决定一 个KeepAlive的连接能保持多少时间,Timeout就尽快shutdown链接,若还有数据必须再建立新的连接 了;MaxKeepAliv ...
2020.08.10农历六月二十一
总希望平淡的生活,能有一丝波澜,于是对每一年的生日都会给予厚望,然而往往也都是在无限期待中失望。小时候自从对生日有了概念,每年的生日都会期待有不一样的事情发生,也许是每个小女孩都会编织的梦。按以往经验,生日当天和之前之后的每一天都没什么两样,普普通通,平平常常。
早上睁开眼睛,告诉自己不要有所希冀,来度过这平常的一天。尽管反复劝诫自己还是忍不住去期望。听着客厅老代吃早饭的声音,不禁在心里嘀咕,昨天还说给我做面条,今天就忘了吧,不过是说说罢了。一股无名的烦躁涌上心头,自从怀孕特别是最近身体越来越笨重,特别容易发火。躺在床上睁着眼睛胡思乱想了一会,决定起来,其实也不知道起来那么早干嘛。没有工作的压力,每天也就无所事事了。百无聊赖的走到洗漱间,看见老代在厨房,原来在给我煮面条,早起无名的怒火消了不少。才明白,我要的不是礼物,是老代的关心。煮好面,老代就匆匆去赶公交上班了。
饭后打开手机,老妈早早发来生日问候“丹妮生日快乐,平安”短短的几个字,看湿了眼眶。长大成家后,把更多的精力放在孩子和家庭里,父母的感受往往忽略,但是在他们的眼里,我永远是他们的关注。这几 ...
shell-tutorial
未读Tutorialbash for循环# basic construct
for arg in [list]
do
command(s)...
done
对于每次通过循环,arg都会使用列表中每个连续值的值。然后执行命令。
# loop on array member
NAMES=(Joe Jenny Sara Tony)
for N in ${NAMES[@]} ; do
echo "My name is $N"
done
# loop on command output results
for f in $( ls prog.sh /etc/localtime ) ; do
echo "File is: $f"
done
bash while循环# basic construct
while [ condition ]
do
command(s)...
done
while构造会测试条件,如果为true,则执行命令。只要条件为真,它就会不断循环。
COUNT=4
while [ $COUNT -gt 0 ...
位于西六环的北宫刚开门迎客不久,新冠病毒再次席卷,满城熙攘,段子百出。尽管如此,也没有把小朋友们关在家里,周末驱车北宫,呼吸新鲜空气。因为疫情的关系,门口会看健康宝。安检人员说,最近查的比较严格,昨天有个黄个的给劝回去了。甚至有红格的也有来的,说半天给遣返了。非常时期,还是慎重一些。第一次来北宫,这里古朴的建筑会比较多,但是好多都封了。整个公园山势平缓,大部分都是平坦的坡路,很适合我这样的孕妇。这里的水都是死水,不清澈,有的都干涸很久了,没有溪流,整个公园的灵性就缺失很多。由于带着孩子,还是以孩子的喜好为考量,找了一块平地,铺上垫子,孩子们就去荡秋千,滑滑梯,打水枪战。在家备了充足的粮食,和小伙伴们一起野餐。孩子们也是不亦乐乎。
离预产期还有57天,我彻底陷入了焦虑的怪圈。不知道是不是因为二胎的原因,孕肚异常的大,体重飙升很快,由原来的98斤,到现在127足足重了30斤,走路也开始喘的越来越重,随着胎儿的增大,压迫内脏,晚上睡眠质量超级差,每天过了凌晨才能睡着,清楚记得昨晚最后一次看时间是凌晨1点20,接下来几点睡着就不得而知了,睡眠极浅,分不清是现实还是梦境,醒来后疲惫不堪,感觉呼吸困难。
都说二胎比头胎要辛苦,除了身体上,还有心理上的变化,给母体的冲击都非常大。精力严重不足,悲观易怒,情绪化所有孕期的特征在我身上都发生了。还有8周的才能卸货,感觉日子漫长,但是心有恐慌,生产时的各种,还有熬人的月子。现在回忆起来,都不知道生二胎的冲动是哪来的。
鉴于身体状况,提前申请来年假,来补充产假。但是对于休假的闲暇时间,如何有效规划,还是没有任何头绪,又加重来焦虑指数。老代给出几条建议,去学习一些新的技能。问我,是学些容易的,还是有点难度的。我说,想学点来钱快还多的。大概是异想天开吧。
最近一直在追剧《三十而已》,已年满32岁的我,目前没有追求,没有方向。年轻时的激情,被现实生活打击的所剩无几。目前有了二胎,对于个人的 ...
shell-tutorial
未读Tutorial本教程通常讨论shell编程,重点是Bash(“ Bourne Again Shell”)shell作为主要的shell解释器。由于有时与bash不同,因此还将引用使用sh,csh,tcsh等其他常见Shell的Shell编程。
Shell编程可以通过在Shell提示符下直接执行Shell命令或按照执行顺序将它们存储在称为Shell脚本的文本文件中,然后执行Shell脚本来完成。要执行,只需在文件具有执行许可权(chmod + x文件名)后编写shell脚本文件名。
Shell脚本文件的第一行以“ sha-bang”(#!)开头,该注释不作为注释读取,其后是Shell解释器所在的完整路径。此路径告诉操作系统此文件是一组将输入到指示的解释器中的命令。请注意,如果在“ sha-bang”处给出的路径不正确,则可能是脚本执行的结果,例如“找不到命令”的错误消息。通常以“ .sh”扩展名命名shell脚本。第一行可能看起来像这样:
#!/bin/bash
添加注释:“#”之后的任何文本均被视为注释
要找出当前活动的shell程序及其路径,请在shell程序提示符下键入突出显 ...
1.简介在本教程中,我们将讨论 Java Instrumentation API。 它提供了将字节码添加到现有已编译Java类的功能。
我们还将讨论Java Agent以及如何使用它们来检测代码。
2.设定在整篇文章中,我们将使用工具构建一个应用程序。
我们的应用程序将包含两个模块:
允许我们提款的ATM应用
还有一个Java Agent,它将使我们能够通过测量投入的时间来衡量ATM的性能
Java Agent将修改ATM字节码,从而使我们无需修改ATM应用即可测量提款时间。
我们的项目将具有以下结构:
12345678<groupId>com.baeldung.instrumentation</groupId><artifactId>base</artifactId><version>1.0.0</version><packaging>pom</packaging><modules> <module>agent</module> < ...
本文翻译自 https://github.com/btraceio/btrace/wiki
首页Btrace用于Java的安全的动态追踪工具。BTrace通过动态地调改正在运行的Java程序的字节码来工作。其在运行的Java类上hotswap,来插入追踪动作。
快速开始键入 btrace <PID> AllMethods.java ,其中PID可以是任何正在运行的目标Java程序。这个样本脚本trace script(AllMethods.java)会埋点所有 javax.swing.*下的类的所有方法。而埋点将会在每个被埋点的方法进入时打印类名和方法名。(译注:instrument不是很好翻译,经过检索相关资料,在这篇文章的上下文中,我认为将instrument翻译为了“埋点”更好理解。这个词的其他近似的含义有,插桩、调改、调控、监测等)
所有的输出会打印到标准输出(stdout)
当脚本运行期间,你可以键入Ctrl-C来停止Btrace工具运行。
片段1 - AllMethods.java
1234567891011121314151617181920package ...


