dubbo泛化调用原理

介绍

泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值中的所有POJO均用Map表示,通常用于框架集成,比如:实现一个通用的服务测试框架,可通过GenericService调用所有服务实现。

阅读更多

greys启动分析

greys 简介

greys的使用参见链接: 使用greys来排查线上问题

阅读更多

Let's go!(Go语言学习)

go学习资料

go tutorial

A Tour of Go

阅读更多

Tomcat日志中异常堆栈不完整

现象

tomcat的异常日志会打印到catalina.out中,有的时候发现日志的堆栈并不完整, 只能看到部分的堆栈信息。

1
2
3
4
5
6
7
8
9
10
11
12
java.lang.Exception: NullPointerException | 2390852_pd2390852_prc2390852_sr2390852_ncb2390852_pm45090051_pd45090051_prc45090051_sr45090051_ncb45090051_pm36619638_pd36619638_prc36619638_sr36619638_ncb36619638_pm1122394_pd1122394_prc1122394_sr1122394_ncb1122394_pm
...
...
at sun.reflect.GeneratedMethodAccessor481.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invoke
java.lang.NullPointerException: null
[2016-12-05 11:29:27][h_hprice_breeze_p_161205.112927.10.90.5.48.6486.595359_1][ESC[31mWARN ESC[0;39m]logX -> desc = SHotel 状态无效, data = hotelId[

阅读更多

缓存System.currentTimeMillis的调用

系统时间缓存的必要

阅读更多

使用google perf工具来排查堆外内存占用

现象

线上机器内存不足,经常被系统oom killer干掉。

如果tomcat运行的好好的,突然被干掉了,没有任何线索,那么就可以使用下面的命令看看是不是oom killer搞的鬼

阅读更多

jinfo使用

查看最终生效的flag

sudo -u tomcat jinfo pid

1
2
3
4
5
6
7
8
9
10
11
12
13
Attaching to process ID 30350, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08
...
...
sun.cpu.endian = little
package.access = sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
sun.cpu.isalist =

VM Flags:

-Djava.util.logging.config.file=/tomcat/www/application/conf/logging.properties -Xms6g -Xmx6g -Xmn4g -XX:PermSize=256m -XX:MaxPermSize=256M ... -Djava.io.tmpdir=/tomcat/www/application/temp

阅读更多