- 浏览: 173299 次
- 性别:
- 来自: 杭州
最新评论
-
zxjlwt:
学习了。http://surenpi.com
ANTLR 学习 -
qizhongfei:
JBPM 和 drools 怎么结合使用的?
Drools and Jbpm 学习 -
qizhongfei:
哥们,有些问题需要咨询,请加QQ:894596225 谢谢了。 ...
Drools and Jbpm 学习 -
weir2009:
红旗可以么
在 Linux 平台下安装 DB2 Express C -
bruce008:
其实这个optional 为true 的时候还有个很管用的用法 ...
Maven 在项目中的依赖管理
文章列表
1, cache
cache line
fasle sharing
2, CPU
serialization
interface invoking
encoding
procesor affinity
3, memory
memory barries / fences
memory access pattern is important
4, GC
garbage collector selection
5, IO
write combine
single writter
smart batching
sequential IO
6, lock-ba ...
Quarz 常用范式
- 博客分类:
- 企业架构
Quaz is a very common library for us to use to scheudle regular jobs.
Just record the paradism to use the Quarz
1, SchedulerFactory to initialize a scheduler to use, there might be several kinds of schedulers to use
base on the property configuration, for example the thread pool size, ...
Do not use locks in the main transaction flow because they cause context switches, and therefore latency and unpredictable jitter.
Never have more threads that need to run than you have cores available.
Set affinity of threads to cores, or at least sockets, to avoid cache pollution by avoiding mig ...
从 github上下载好dubbo2.5.3 的源代码后, 可以没有办法编译。 从出错信息看 是找不到parent opensesame pom 文件。
这个pom 文件还是比较好解决的, 从 github.com/alibaba 上面能够找到这个parent pom 文件。 一般来讲开源的公司都会有一个公共的parent pom 文件从项目管理角度定义它的整个license, source code 的repository, binary 的repository, 以及所有项目都会用到的一些公共的定义。但是把这个pom 文件install 到我的local repository ...
Spring 现在不再使用Maven build 代码 改为Gradle, 这两个都差不多东西, Maven 更倾向于基于约定使用更多的配置。Grade 可以更灵活的使用脚本。
但是在公司用的时候访问互联网需要用到代理, 这个Gradle 使用代理的问题网上有些建议是 将配置放到 home 目录下的 .gradle/gradle.properties 文件中, 但是在我的机器上不工作。
systemProp.http.proxyHost=XXXXsystemProp.http.proxyPort=80
然后看到有人讲将它放到 command line -Dhttps.prox ...
很长时间没有更新博客了, 其实我还是有很多想法的哈。
比如最近有个想法看到目前太多的移动app 用户可以在移动端薅羊毛, 但是我们都知道单个用户羊毛量比较少。 如果我们能走量的话就比较可观了, 架不住规模效应啊。 如果是能利用二手破智能手机搭个集群,整个集群中有个手机几百上千台。 如果一台手机一天薅个三五块, 由于量大,这个也是比较客观的。
1, 手机集群 http://www.guokr.com/post/651041/ 。 这个还是有同好的都想到了。这个不但硬件集成好,手机cloud 还能做到自动部署app, 自动任务调度到整个集群中。
2, 无最低消费, 无月租的SI ...
通常我们都是用SureFire 来做unit test 用 FailSafe 做integration test。 这两个插件的区别主要在于SureFire 发现有失败的单元测试默认就会报错, 而FailSafe 会保证所有的集成测试都做完。
如果是简单的用这两个插件来做测试的统计是没有问题的, Maven 默认都支持的。 但是如果牵扯到支持代码的覆盖率, 并且将这两种测试的覆盖率都能在Sonar 里面能统计出来就比较麻烦了。 搜遍互联网没有几个比较靠谱的。 其中比较靠谱的也 https://davidvaleri.wordpress.com/2013/09/06/trackin ...
利用JDT 来分析java 源代码
- 博客分类:
- CI
项目里需要扫代码的sql,主要是想找出所有用到的sql。 将相关的sql 提交给DBA 来分析,希望在最早的时间发现潜在的查询性能问题。
想想eclipse 里面用到的JDT 能分析java 源代码, 如果我们能分析项目里的源代码利用ASTParser 就可以找到相关的SQL 定义了。
其实已经有人想到这个 http://www.programcreek.com/2011/01/a-complete-standalone-example-of-astparser
,已经自己整理过所有会依赖的jar,机器重装本地的 repository给丢了。 所有就直接用这个链接里面给的一个zi ...
在项目用到 EhCache 来cache 从数据库中query 出来的reference 数据。 按理说ehcahce 非常成熟了但是在用的它的addCacheIfAbsent api 时, 居然碰到它不是线程安全的。 从它api 字面上来说绝对不应该是线程不安全的, 放狗一搜果然是个bug。 这么低级的bug 还是在最新的版本2.7.0 才fix。 但是我们项目只用到它的ehcache-core.jar 不想用太多它的特性, 下了个 ehcache-core.2.6.9.jar 来看看 release 日期是 2041-4-8 但愿没有问题哈。
在它的网站上找的bug ...
我们都知道Maven 的插件在Eclipse 中会经常去update 依赖项, 如果依赖的是snapshot 并且nexus 服务器比较慢就悲催了。 我们其实可以利用Maven 的Eclipse 插件去生成 .project .classpath 文件,然后再Eclipse 中用普通的Java 工程就避免很多不必要的Maven update。
mvn clean eclipse:eclipse -Declipse.workspace=C:\work_GC\code
eclipse.workspace 指定的是存放workspace 的目录。
Maven ...
在 Java SE 下面有一个不太常见的 ServiceLoader 类 , 它实现了java 中 的spi 机制。 所谓spi ( service provider interface) 就是java se 定义了很多 service 比如 logging, xml parser, jdbc . 这些是所谓的标准, 比如 xml parser, Oracle 会在 rt.j ...
Sonar 是一个开源的但是非常好用的代码质量控制工具。 它集成了PMD,FindBugs 和Checkstyle 等常用的静态代码检查工具,以及代码覆盖率的检查。 它提供了一些非常好用的特征, 它的dashboard 和 timemachine 非常简单但是非常显著的显示了一些最重要的特征代码覆盖率, 代码violation ,代码复杂度
在运行的时候碰到一个非常奇怪的问题, 它报出类似如下的exception:
Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException ...
we use lots of ssh to access the web service or https. Sometime to create the cerfication file named:
jssecacerts
Then we can just copy this file to $java_home/lib/security
/**
* http://blogs.sun.com/andreas/resource/InstallCert.java
* Use:
* java InstallCert hostname
* Example:
...
当我们想排查线上正在运行的应用的问题时, 我们通常想通过修改log4j 的level 来打出debug 级别的信息。 因为线上运行的代码通常都是info 级别的。 我们在 java 的运行参数里加上如下系统属性:
-Dlog4j.debug -Dlog4j.configuration=file:path of the file/log4j.xml
通过这种方式log4j 会使用我们新指定的log4j.xml 而不是原来在二进制包里面的log4j.xml 了。