java系统hang死_干货案例:坑爹cmd 执行jar不打印日志,服务端hang(卡住)问题...

最近解决了一个坑爹cmd 执行jar不打印日志,服务端假死hang住问题。

使用技术:java Main控制台+Netty服务端+c#客户端(socket)+长链接(心跳保活)+logback记录日志(文件+控制台)

java服务端采用,logger.debug写日志

问题描述:

cmd运行java jar包 运行一段时间后 服务会卡住(就像假死一样) 按一下回车或者在控制台内部鼠标右键又可以继续执行,而且后跳出一段之前收到的信息,这时客户端才会收到响应内容。

这个问题就是像是假死一样,也不报错,客户端能正常发送信息说明socket通道是通的。

在服务端卡住的时候,客户端能正常发送心跳包,但是无返回。

8c1e85f2a8985a13cc2ade5ae6cdf767.png

按一下回车或者在控制台内部鼠标右键,恢复正常:

客户端:

2d0b4d38b482a62d06c4c9096cd2b3b5.png

服务端:

9094d96e2c35fa9de82526b9e2543fdf.png

解决方案:

当初怀疑是服务端hang住了,是不是死锁,是不是logback或netty框架配置问题,或许是不是服务端代码的问题?

于是通过jps,jstack导出线程堆栈。也没有发现死锁和其它问题。

重点来了。!!!!!!!!!!!!!!!!!!!

09c3e05455d94ffef2632ed5385eef32.png

cmd默认开启了“快速编辑模式”,只要当鼠标点击cmd任何区域时,就自动进入了编辑模式,之后的程序向控制台输入内容甚至后台的程序都会被阻塞。

我们在控制台里面回车或者右键鼠标后,自动退出了编辑模式。因此,控制又恢复输出内容,服务端又正常了。

通过上面的分析你应该知道,为什么会出现本文开头描述的问题了,聪明的你应该知道怎么处理了吧?

关闭这个快速编辑模式就ok了。

在cmd窗口的标题上鼠标右键,调出属性和默认属性把这个关掉就行了。

真是坑爹啊!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java High Level REST Client进行Elasticsearch查询的示例代码: ``` RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"))); SearchRequest searchRequest = new SearchRequest("user-info"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", "hang si"); searchSourceBuilder.query(matchQueryBuilder); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); SearchHits hits = searchResponse.getHits(); for (SearchHit hit : hits) { String index = hit.getIndex(); String id = hit.getId(); float score = hit.getScore(); Map<String, Object> sourceAsMap = hit.getSourceAsMap(); // Do something with the search hit... } client.close(); ``` 其中,我们首先创建了一个`RestHighLevelClient`实例,指定了Elasticsearch服务器的主机和端口。 然后,我们创建了一个`SearchRequest`实例,指定了我们要查询的索引名称。接着,我们通过`SearchSourceBuilder`构建查询条件,这里使用了`MatchQueryBuilder`来进行匹配查询。 然后,我们将查询条件设置到`SearchRequest`中,并执行查询。查询结果包含在`SearchResponse`对象中,我们可以从中获取`SearchHits`对象,遍历其中的`SearchHit`对象,获取相关信息,如索引名称、文档ID、文档得分等。最后,我们关闭`RestHighLevelClient`实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值