`
文章列表
在JVM启动参数JVM_OPTS中加入自定义参数 -Dlog4j.debug=true  
传送门:  http://blog.csdn.net/caihaijiang/article/details/35552859  
 大家知道,一般情况下,灰度(AB)发布需求设置nginx都只到/,但如果有 /xxx要重定向到/yyy/xxx呢,这种我们知道用 rewrite,但是注意rewrite后面一定要跟break,官方文档解释如下: When the URI is changed inside a proxied location using the rewrite directive, and this same configuration will be used to process a request (break): location /name/ { rewrite /n ...
location /{ set $ody_cookie ""; if ($http_cookie ~* "ody_ab_gray_group=(.*)"){ set $ody_cookie "ody_ab_gray_group=$1"; } if ($query_string ~* "^\?.*"){ rewrite ^(.*) ^$1&$ody_cookie break; } if ($query_string !~ "^\?.*"){ re ...
以下参数可存放在catalina.sh中,以便支持GCLOG下载功能的开发 -Xloggc:/data/log/gclog/tomcat_gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails  

基于netty的websocket

    博客分类:
  • java
基于netty的websocket,见附件。 网上抄的,但不记得在哪抄的了,比原生websocket实现稳定高效的多。发出来共享下,想要的就下载吧。
MongoDB MapReduce分组后的每一组数据如果大于100,那么他每次会取100条,归并完变成1条又返回给emit里面作为输入,继续判断余数是否大于100,大于100,取100条,周而复始,直到最后一次取数不大于100,运算完成后就结束。 需要特别说明的是,如果最后一次虽然不大于100,但是如果是1的话,那么不好意思,他直接就给到finalize了,跳过reduce函数。 原理剖析:          下面给出两个相同业务的运算逻辑。   第一种:注意costTime += (val.endTime - val.beginTime)+val.costTime; v ...
一些孩子 ,特别是新入门程序员,给你一个需求,比如查出所有发布记录中所有发布版本最新操作的集合 孩子如果这么写,就犯错了   select version,time from table group by version order by time desc  正确的写法是 select * from (select version,time from table order by time desc) t group by version order by time desc  需要注意的是,网上一些文章,抄来抄去,都没在外层grou ...
代码人,废话不多,直接上代码 主要重写部分,请关注以下代码和OdySession.getTraceTicket()相关联处! 还有一种解决方案,应用Log4j MDC技术,相关文档请搜索Log4j MDC。 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。 package com.zcm.log; import com.odianyun.architecture.caddy.trace.session.OdySession; import org.apache.log4 ...
* 表示匹配0或多个不是/的字符 ** 表示匹配0或多个任意字符 ? 表示匹配1个任意字符 /** * 将通配符表达式转化为正则表达式 * @param path * @return */ private static String getRegPath(String path) { char[] chars = path.toCharArray(); int len = chars.length; StringBuilder sb = new StringBuilder() ...
Pyton在请求Http时,先要建立连接,而建立连接的地址必须是机器的IP:PORT或域名(域名解析也必须指到IP:PORT)。这与其他语言编程不同,如Java。 如果是到容器应用级别,比如你Tomcat下跑某个app应用,如果你到xx.xx.xx.xx/app则不行,必须是xx.xx.xx.xx 所以你在编程时,如果别人传你地址,戴取ip:PORT(或域名)时要split("/")[0],千万要注意。原则就是只取IP:PORT,记住。 如下处理 def postMainHost(fileUrl, fileUUID): ""&q ...
Usage: du [OPTION]... [FILE]...   or:  du [OPTION]... --files0-from=F Summarize disk usage of each FILE, recursively for directories.   Mandatory arguments to long options are mandatory for short options too.   -a, --all             write counts for all files, not just directories       --appa ...
Type paramType = types[i]; Class contextClass = method.getDeclaringClass(); JavaType realJavaType = mapper.getTypeFactory().constructType(paramType); values[i] = mapper.readValue(argment.toString(), realJavaType); //关注类:MappingJackson2HttpMessageConverter  
ES里多字段分组再排序,只有两种办法,其他办法都不准: 办法一:用script 如 //主桶:设置要聚合的字段,sql TermsBuilder one = AggregationBuilders.terms("one").script(new Script("doc['"+dbFiled+"'].value +'{#}' + doc['"+sqlFiled+"'].value")); one.subAggregation(AggregationBuilders.m ...
传送门: http://www.jianshu.com/p/6d26d525bb96  
Global site tag (gtag.js) - Google Analytics