
java
kakaweb
这个作者很懒,什么都没留下…
展开
-
grafana配置notification mail出现user password expired
null原创 2022-08-15 17:38:51 · 295 阅读 · 0 评论 -
mysql aggregation函数的返回类型
null原创 2022-08-11 15:38:00 · 377 阅读 · 0 评论 -
基于netty的java程序在arm平台使用
基于netty开发的tcp server,基本模式是创建reactor thread,之后bootstrap server。将编译后的jar包在arm上运行时,可以发现无法创建EpollEventLoopGroup。原因在于netty依赖的epoll动态链接库在4.1.49.Final及之前的版本只提供了x86_64平台的.so文件,如图:升级版本至4.1.50.Final或更高版本,可以发现arm64平台的.so文件,正常启动。...原创 2022-03-31 17:51:06 · 1624 阅读 · 0 评论 -
docker standalone下启动flink job无法找到resource manager
当我们通过docker在standalone下启动flink job时,按照示例(Docker | Apache Flink)能够正确启动。但我们将配置项中的jobmanager.rpc.address换成自定义的jobmanager_xxx时,jobmanger和taskmanager启动永远报错:org.apache.flink.runtime.jobmaster.JobMaster [] - Could not resolve ResourceManager原创 2022-02-14 22:21:56 · 1793 阅读 · 0 评论 -
apache common pool中idle resource处理的相关配置
apache common pool提供了抽象的resource pool实现,可以快速封装tcp等resource。连接池内置了idle, evict的实现,可以对idle resource进行有效管理,回收过多的idle resource。在apache common pool中,关于idle resource的配置项较多,配置项需要组合使用,下面对常用的配置项组合及其效果进行分析。仅控制idle连接的数量至maxIdle以下设置minIdle, maxIdle。此时resource原创 2021-09-29 17:45:13 · 242 阅读 · 0 评论 -
Netty ByteBuf的回收
以下三种情况下对于ByteBuf的回收策略:ChannelOutboundHandler中write的ByteBuf,在pipeline中的tail handler将负责释放,详见AbstractChannelHandlerContext中的如下函数 private void write(Object msg, boolean flush, ChannelPromise promise) { ObjectUtil.checkNotNull(msg, "msg");原创 2021-08-13 15:40:38 · 689 阅读 · 0 评论 -
In-memory cache设计总结 - caffeine
接上文https://blog.youkuaiyun.com/kakaweb/article/details/114891920原创 2021-06-23 15:13:36 · 338 阅读 · 0 评论 -
使用zgc导致linux平台下top命令显示内存占用超过100%
背景手头有一个流式计算项目,特点是高吞吐且对延时敏感,heap大小在50G左右,原先使用的G1GC在高峰期的gc时间长达30s以上,对下游业务造成了干扰。经过多次调优,仍然不理想,因此尝试使用JDK11的ZGC优化performance。经过初步试运行,ZGC在同样吞吐量的情况下,能够有效缩减STW时间,提升效率。但运行中发现一个问题,当我们使用top命令查看程序运行情况时,发现如下的现象,程序占用的%MEM超过了100。原因由于程序运行正常,操作系统也没有运行其它程序,因此我.原创 2021-03-24 12:04:38 · 2613 阅读 · 0 评论 -
Kafka客户端异步写入时的同步锁问题
近期使用java开发基于kafka的数据流相关业务,基本处理流程为:订阅kafka topic 数据处理 将处理后的结果写入下游kafka在调试过程中发现,step1 & 2性能都非常高,单机(40 cores)能达到30kTPS,但加上step 3之后,性能只有6k TPS。由于我们使用的是异步写入kafka的模式,不应该有如此大的性能下降。通过深入代码,有如下发现:将一条record append到本地buffer时,需要对batch队列进行同步(可能有两次)因此,多.原创 2021-01-18 16:36:19 · 581 阅读 · 2 评论 -
curl和HttpClient对于系统代理的处理差异
背景公司项目中,需要跨机房通过HTTP协议传输数据,SRE部门在远端通过域名暴露了一个influxdb服务,客户端在异地机房通过该域名写入时序数据。现象测试连通性时,使用curl进行如下测试,结果正常,说明网络访问没问题。curl -i "http://<host_name>/ping"但使用HttpClient/OkHttpClient进行数据发送时,一直出现connect timeout错误,无论如何调整timeout的大小,都无法成功发送请求。挖掘解.原创 2020-06-28 19:42:49 · 2295 阅读 · 3 评论 -
JDNI加载资源导致的javassist修改字节码失败
由于监控链路升级的需要,需要对应用访问redis的性能进行监控,即需要在redis操作前后加上如下代码:{ java.util.Map<String, String> tags = new java.util.HashMap<>(); tags.put("ops", "scan"); tags.put("appName", "xxx"); long begin...原创 2020-02-04 13:13:36 · 945 阅读 · 0 评论 -
使用javassist修改类字节码时关于范型一个小坑
javassist作为一款低门槛的java字节码修改工具,允许用户以java代码的方式修改java类文件,无需对类文件的结构有深入的了解。最近,在公司项目中使用了javassist,使用过程中遇到了一个和范型有关的小坑,特此记录。代码如下: StringBuffer stringBuffer = new StringBuffer(); stringBuf...原创 2018-11-28 21:40:24 · 7839 阅读 · 6 评论 -
记一次和Tomcat有关的Too many open files错误
前言最近在公司开发推送系统相关的项目,需要在单台Linux服务器上支持几十万到上百万的连接,为此,修改了操作系统的文件描述符上限。相关修改操作可参考:http://jameswxx.iteye.com/blog/2096461修改并重启后使用ulimit -a查看发现open-file变大。之后,使用netty简单构建一个服务端demo,经测试证明该demo能够支持多于原创 2017-05-16 20:51:22 · 361 阅读 · 0 评论 -
解决httpclient超时设置不生效的问题
最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。初始设置如下: //超时设置 RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(400).setSocketTimeout(400).build();原创 2016-07-20 23:29:13 · 15786 阅读 · 8 评论