如何理解 guava 中的 MoreExecutors#directExecutor ?

guava 是谷歌官方一个著名的 Java 类库,增加了很多 feature ,很多都被官方借鉴。我在使用 guava 提供的 future 的时候,发现了 MoreExecutor#directExecutor 这个方法。对这个方法的理解产生了一些疑问。

阅读更多

shade logback 的正确姿势

示例工程参照 aliyun-mq/rocketmq-logging

在开发 RocketMQ 5.0 SDK 的过程中,遭遇到一个问题,由于历史上的原因,RocketMQ 的日志默认情况下是会输出到用户的账户主目录下的,但是在之前的版本中,RocketMQ 自己维护了一个日志模块,也是我们所熟知的 logging 模块(下图所示)。之所以没有使用开源的 slf4j 和 logback/log4j2 的方案主要还是想要避免配置文件和环境参数的冲突。

RocketMQ 作为经常被业务代码所依赖的中间件产品,如果自己也直接使用开源的 logback/log4j2 解决方案,那么和用户自己的配置发生冲突几乎是板上钉钉的事情。但是 RocketMQ 本身这个日志模块带来一定的维护成本不说,功能也是无法做到和开源的 logback/log4j2 的解决方案对齐的。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×