首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jgroups Connection.Receiver的问题

jgroups Connection.Receiver的问题
EN

Stack Overflow用户
提问于 2014-01-14 18:27:18
回答 1查看 445关注 0票数 0

我们正在使用jgroup通过我们的集群同步几个java对象。目前我们只有两台服务器,而且我们使用TCP协议。我们为同步配置了一个tcp端口(42812)。

我们发现了以下问题:当服务器运行一段时间时,1小时到3小时,那么内存使用量会增加很多。这就是为什么我们采取堆转储,并在两个服务器上,我们发现以下泄漏可疑:

代码语言:javascript
复制
The thread java.lang.Thread @ 0x5ff35fdd8 Connection.Receiver [11.63.99.51:42813 
- 11.63.99.51:42813],userNotificationCounterSync,hjad-gts4-de16-38376 keeps local
variables with total size 1.650.814.560 (38,04%) bytes.

The memory is accumulated in one instance of "byte[]" loaded by "".
The stacktrace of this Thread is available. See stacktrace.

当我们进行tcp转储时,我们只看到syn ack包通过42813端口发送,但这是在内存提升之后。因此,在我们看来,服务器正在通过未配置的端口接收消息,并且不处理它们。内存使用量永远不会超过1.650.814.560字节,并且同步容器是synchron,所以我们在同步方面没有问题。我们在spring xml配置中使用port_range 0配置JChannel:

代码语言:javascript
复制
TCP(bind_port=12812;
port_range=0;
recv_buf_size=130k;
send_buf_size=130k;
tcp_nodelay=true;
enable_bundling=false;)
:TCPPING(initial_hosts=server1[42812],server2[42812])
:MERGE2:FD_SOCK:VERIFY_SUSPECT:pbcast.NAKACK(use_mcast_xmit=false;retransmit_timeout=300,600,1200,2400,4800;discard_delivered_msgs=true;)
:UNICAST:pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=400000;)
:FRAG:pbcast.GMS(print_local_addr=true;join_timeout=3000;view_bundling=true;):pbcast.STATE

在我们看来,对于这种配置,节点不应该通过端口42813进行通信。

Connection.Receiver是如何通过这个端口接收这么多数据的,为什么没有处理这些数据?

EN

回答 1

Stack Overflow用户

发布于 2014-09-22 16:13:30

整个问题是端口范围,我认为它是默认设置为0。这被证明是错误的,我们只是在TCP和TCPPING配置中设置了参数port_range=0,一切都按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21111146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档