JDK新特性思维导图
这篇文章是我重温JDK1.5开始的新特性的时候整理的思维导图,可以当做大纲来查看.有时搞忘的时候可以拿来再看看.
在现在的软件系统中,通常都会搭建集群或者分布式环境了.而在这种情况下,通常都需要一个分布式程序协调者的服务.这最常用的就是zookeeper了.
在我们的系统中,会使用zookeeper来做统一的配置管理
,集群节点状态管理
,以及分布式锁
的功能.
为了保证zookeeper本身的高可用性,那么这就需要对ZK进行集群.
操作系统:Ubuntu 12.04 64位
JDK:1.7.0_55 64位
机器: 192.168.1.100
192.168.1.101
192.168.1.101
2014年9月1日.beyondCompare终于推出了Mac版了.真的是大快人心的大好事,大了又大.
以前用过很多MAC上的比较工具,像什么Araxis Merge
DiffFork
DiffMerge
Kaleidoscope
等等. 都没有很好用. 对比Windows平台上的BeyondCompare,差的不是一点半点.
使用beyondcompare对比.class文件的时候,默认是直接对比的二进制文件.这基本上就看不懂.因此,需要在对比的时候自动的反编译为源代码.然后再进行对比.
more >>今天在做高级检索的时候,当用户在界面配置了高级检索的字段后,需要程序自动的把AI3_ADVANCEDSEARCH表删除后,重建.本来这个功能在XDA和xSpace上是能正常工作的.
这两个系统所使用的数据库是 MYSQL和ORACLE.一切正常. 现在TVBS使用的是DB2. 在做测试的时候发现.每当重建表的时候,整个重建的线程都卡住了.同时,使用DB2的SQL管理工具,对任意的表进行修改/删除/新建,都会卡住.这肯定是有问题的.
在我们的系统中,使用了Lucene
作为全文检索引擎用作NRT近实时检索.这就牵涉到一个更新的问题.
在Lucene当中,其实是不存在部分更新的说法的,它仅仅支持全更新.因此,为了应用端的调用方便.在我们的FTEngine全文检索引擎中是提供了部分更新的功能的,其逻辑大体上来说,就是根据传入的uniqueID
,在索引中找到对应的Document
.然后再恢复它的Term
.而后再构造全更新的Document,交由Lucene进行全更新.
但是,在北京台项目中,突然发现全文检索更新的很慢,往往页面都对素材修改了2个小时了,索引都还没有更新. 从而引出了这个问题.
经过最初步的分析, 发现发生这种现象多集中于有大量的归档与回迁的操作.这两个操作对索引的影响就是会一次性的大量的进行索引的部分更新. 因此就把原因怀疑到了部分更新上.
more >>最近收到一个新的需求,在基于数据库查询中,需要支持更高级的正则表达式的查询.但是这个在Hibernate的HQL中是不支持的.那么就需要想办法支持这个功能.
Mysql5.5
以及Oracle10g
都是支持正则表达式查询的,但是两个的语法稍微有点不一样.通用正则表达式语法:
符号 | 意义 |
---|---|
. |
表示匹配任意一个字符 |
[ ] |
匹配任何单一字符 |
[0-9] |
表示一个字符的范围 |
^ |
否定一个字符集合,将匹配除指定字符外的任何东西 |
\\ |
匹配特殊字符转义 |
* |
0个或多个匹配 |
+ |
1个或多个匹配(等于 {1, }) |
? |
0个或1个匹配(等于 {0, 1}) |
{n} |
指定数目的匹配 |
{n, } |
不少于指定数目的匹配 |
{n ,m} |
匹配数目的范围 |
在多个系统环境中都出现了我们的DCMP在运行过程中突然停止响应,并且时间长达几分钟至几十分钟之久.期间DCMP任何功能都无法运行.严重的影响了系统的运行.因此需要分析排查问题的原因
经过最初步的分析,发现是DCMP在运行一段时间后,会执行FullGC
. 在FullGC的过程中整个系统会停止一切响应.因此,解决该问题的思路,就是分析出DCMP平凡进行FullGC
的原因.然后进行优化
在DCMP运行的过程中,通过windows任务管理器找到进程的PID
.然后调用JDK自带的命令:
|
|
获取当前JVM的内存信息:
他上面标识了JVM中每一个区的说占用百分比.
由于Jboss服务器默认的情况下,可以通过远程的方式登陆控制台,然后关闭卸载服务.这对于真正的线上服务来说是非常危险的操作,哪怕是在电视台内部的局域网也是如此.因此,需要给JBOSS控制台加上密码.
这一步主要是隐藏控制台的访问目录.
具体是修改:jboss_home/server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml
文件:
|
|
最近的项目里面涉及到了定时任务的处理.因此,引入了最常用的Quartz
+Spring
的框架来实现.
而Cron
表达式是Quartz
最主要的支持方式.所以这里记录一下Cron
表达式的用法.
Unix
中也是支持Cron
计划任务的. 但是和Quartz
的Cron
定时任务还稍微有一点区别.
Quartz
的格式支持到秒级别的计划,而Unix
的Cron
计划仅支持到分钟级Quartz
支持七个域(秒,分,时,日,月,周,年). Unix
支持五个域(分,时,日,月,周)Unix
中,要执行的操作是放在cron表达式中的.而Quartz
使用cron
表达式仅仅用来表示执行的计划,执行的操作是放在Job
中的现场发现,每次重启媒资服务,Oracle的数据库连接会增加约20个的JDBC连接.这样就会导致数据库连接越来越多.
接到这个问题, 使用
这个SQL语句查询到 确实每次重启都有 大约20个 名为'JDBC Thin Client’
的数据库连接没有释放.
Oracle-DS.xml
增加一行配置
|
|
这样就可以给我们的服务的数据库连接增加名字.
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true