Java 当消息在Jgroups中被拒绝时会发生什么?
我使用axon和分布式命令总线,它使用Jgroups创建集群。我发了大约100条信息。 我对tcp-gossip.xml有以下配置: 我得到一个java.util.concurrent.RejectedExecutionException 使用此配置运行时,由于拒绝策略为中止,此配置很明显。但被拒绝的消息将再次被拾取并执行,同时保留执行顺序。这意味着消息保存在缓冲区的某个地方。 1> 有人知道JGroups中的消息缓冲在哪里吗。Java 当消息在Jgroups中被拒绝时会发生什么?,java,threadpool,jgroups,Java,Threadpool,Jgroups,我使用axon和分布式命令总线,它使用Jgroups创建集群。我发了大约100条信息。 我对tcp-gossip.xml有以下配置: 我得到一个java.util.concurrent.RejectedExecutionException 使用此配置运行时,由于拒绝策略为中止,此配置很明显。但被拒绝的消息将再次被拾取并执行,同时保留执行顺序。这意味着消息保存在缓冲区的某个地方。 1> 有人知道JGroups中的消息缓冲在哪里吗。 2> 有人能准确地解释我们使用中止拒绝策略时会发生什么吗?1消息
2> 有人能准确地解释我们使用中止拒绝策略时会发生什么吗?1消息存储在UNICASTx或pbcast.NAKACKx协议中,直到所有收件人确认收到这些消息为止 2在JGroup中,存在非平凡的线程模型。消息在接收线程中从网络读取,然后传递到三个线程池(常规、OOB和内部)中的一个,以便在堆栈中进行处理和应用程序交付。当线程池繁忙且没有配置队列/队列已满时,线程池将拒绝作业,消息将在接收方丢弃。幸运的是,它将在稍后被重新发布。您可以使用JMX或probe.sh监视TP.num_rejected_消息上被拒绝的消息数
sock_conn_timeout="300"
reaper_interval="0"
thread_pool.enabled="true"
thread_pool.min_threads="3"
thread_pool.max_threads="3"
max_bundle_timeout="10"
level="trace"
thread_pool.rejection_policy="Abort"
recv_buf_size="64K"
send_buf_size="20M"
/>