Ray
Ray
这个比较偏业务,因此只提供了接口,没有考虑提供具体实现类
近期主要方向是跨语言服务化,之后会考虑支持响应式,欢迎关注
`DefaultProvider `不是开放的扩展点,没法直接在此处扩展。 `默认DefaultProvider会以ERROR级别输出自定义异常信息` 如果是指自定义业务异常的话,可以通过在方法签名中增加对应的throws声明,对于throws声明过的异常,只打印info日志,不打印error日志。
建议明确的异常在方法签名中进行声明,对于明确声明的异常框架是不会打印异常栈的。 非明确声明的异常(例如NPE)可以看作未知异常一般需要打印异常栈方便排查问题。 例如,可以这样声明方法: ``` void myMethod() throws MyBizException; ``` 调用时如果方法抛出MyBizException及其子类是不会打印异常的,如果是NPE等没有声明过的异常才会打印error级别日志。
走的都是直连模式吗?可以先确定一下耗时点在什么地方,可以分别在client端和server端抓包,看看client 发出请求到server接收完的耗时、从server端收到请求到开始返回结果的时间、server端开始返回结果到发送完成的时间,client端从发出到接收完结果到总时间等。
发送的数据大吗?server端从收到请求,到开始返回响应的首包大概多长时间?只是首次请求慢,还是后续一直都满?例如请求10次以后还慢吗?
看着是server端收到req后,大概7-10ms才进行的回包,应该耗时在server端。 可以把server端的accesslog、AccessStatisticFilter这两个filter去掉试试
非常感谢建议,我们会考虑在后续版本中提供更多可选配置项。欢迎关注后续版本:)
建议使用JFR看看类加载、对象创建等耗时情况。 java的类加载机制很容易出现系统启动后首次请求耗时较长的问题,可以考虑在server端正式对外提供服务(开启心跳)前,进行业务预热来缓解
motan启动后,默认会先启动核心线程。见https://github.com/weibocom/motan/blob/97b00af9d16d07b228128d2835e5fe5f502d6d90/motan-transport-netty/src/main/java/com/weibo/api/motan/transport/netty/NettyServer.java#L130