KamTo Hung
KamTo Hung
> > 您好!想请问一下关于:jdk1.8之前并发操作hashmap时为什么会有死循环的问题? > > 这个问题网上搜索了几篇文章没理解太清楚。有推荐的解释文章吗?感谢楼主。 > > https://coolshell.cn/articles/9606.html jdk1.8之前hashmap是头插法,可能导致循环引用
> > @qinchunabng Thanks for sharing. I have one question. You example code has two comments. one is 'publishOn' and other is 'subscribeOn' To avoid exception happening, needs uncomment both?...
有个pull做了log4j的适配 [10952](https://github.com/apache/dubbo/pull/10952), 代码3.1.5和3.1.0不变,但是WelcomeLogoApplicationListener中的Logger: 3.1.0版本使用:org.slf4j.Logger 3.1.5版本使用:org.apache.dubbo.common.logger.Logger 此pull修改了Logger的包引发的问题[11000](https://github.com/apache/dubbo/pull/11000) 结论: 3.1.4版本合并了[11000](https://github.com/apache/dubbo/pull/11000)但是没合并 [10952](https://github.com/apache/dubbo/pull/10952)的问题
> 有个pull做了log4j的适配 [10952](https://github.com/apache/dubbo/pull/10952), 代码3.1.5和3.1.0不变,但是WelcomeLogoApplicationListener中的Logger: 3.1.0版本使用:org.slf4j.Logger 3.1.5版本使用:org.apache.dubbo.common.logger.Logger 此pull修改了Logger的包引发的问题[11000](https://github.com/apache/dubbo/pull/11000) 结论: 3.1.4版本合并了[11000](https://github.com/apache/dubbo/pull/11000)但是没合并 [10952](https://github.com/apache/dubbo/pull/10952)的问题 我可以在3.1.x版本修复此问题
> @egalee 主要原因是依赖中既传递了log4j的依赖,也有slf4j的依赖,而#11000 合并之前一直都写死了用slf4j,这个导致dubbo内的dubbo.application.logger配置对不规范的日志输出并不起效果。这也是[https://github.com/apache/dubbo/pull/11000修复的原因。](https://github.com/apache/dubbo/pull/11000%E4%BF%AE%E5%A4%8D%E7%9A%84%E5%8E%9F%E5%9B%A0%E3%80%82) 至于为什么用低版本可以,是之前强制slf4j,所以不影响,现在改为标准输出后,在没有配置dubbo.application.logger的情况下,如果依赖中依赖了log4j,优先会按照log4j输出,然而如果没有配置log4j,则出现没有日志输出的情况。 所以有2个办法,一个是升级3.2,3.2将完成这块的适配。一个是配置一下dubbo.application.logger=slf4j。 了解
> @egalee 主要原因是依赖中既传递了log4j的依赖,也有slf4j的依赖,而#11000 合并之前一直都写死了用slf4j,这个导致dubbo内的dubbo.application.logger配置对不规范的日志输出并不起效果。这也是[https://github.com/apache/dubbo/pull/11000修复的原因。](https://github.com/apache/dubbo/pull/11000%E4%BF%AE%E5%A4%8D%E7%9A%84%E5%8E%9F%E5%9B%A0%E3%80%82) 至于为什么用低版本可以,是之前强制slf4j,所以不影响,现在改为标准输出后,在没有配置dubbo.application.logger的情况下,如果依赖中依赖了log4j,优先会按照log4j输出,然而如果没有配置log4j,则出现没有日志输出的情况。 所以有2个办法,一个是升级3.2,3.2将完成这块的适配。一个是配置一下dubbo.application.logger=slf4j。 尝试了下配置dubbo.application.logger=slf4j不生效 原因是ApplicationEnvironmentPreparedEvent事件在ApplicationConfig配置之前就触发了,此时使用的日志是log4j 除非在代码中配置 ```java @SpringBootApplication @EnableDubbo public class StartConsumer { public static void main(String[] args) { System.setProperty("dubbo.application.logger","slf4j"); SpringApplication.run(StartConsumer.class, args); } } ```
I try to use fastjson2, kryo and sft that it return float. I think the problem is hessian serialization. org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult#handleValue http://hessian.caucho.com/doc/hessian-serialization.html dubbo version: 3.1.5 ```xml org.apache.dubbo.extensions dubbo-serialization-kryo 1.0.0 org.apache.dubbo.extensions dubbo-serialization-fst...
> DtpMonitor.java:60 > > @OverRide protected void onContextRefreshedEvent(ContextRefreshedEvent event) { MONITOR_EXECUTOR.scheduleWithFixedDelay(this::run, 0, dtpProperties.getMonitorInterval(), TimeUnit.SECONDS); } > > 每次刷新会重复创建监视调度任务,导致重复调度 有无兴趣提个pr,判断时间间隔是否变更然后做rescheduleTask处理
> > DtpMonitor.java:60 > > @OverRide protected void onContextRefreshedEvent(ContextRefreshedEvent event) { MONITOR_EXECUTOR.scheduleWithFixedDelay(this::run, 0, dtpProperties.getMonitorInterval(), TimeUnit.SECONDS); } > > 每次刷新会重复创建监视调度任务,导致重复调度 > > 这个怎么复现呢,继承OnceApplicationContextEventListener了,按理说不会有重复刷新的问题 如果自己再publishEvent ContextRefreshedEvent会触发
1. 拒绝数量、拒绝告警是有的,然后LargestPoolSize也有采集的。最近有新pr采集平均耗时、ops等 2. 线程池设计中blockingQueue本身就类似扩容的机制,大小还要考虑下内存占用等