Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongodb连接引发MongoScope异常_Java_Mongodb_Haproxy - Fatal编程技术网

Java mongodb连接引发MongoScope异常

Java mongodb连接引发MongoScope异常,java,mongodb,haproxy,Java,Mongodb,Haproxy,总之,我遇到了一个奇怪的问题 我有3个MongoDB服务器,并将它们组合成一个replset——一个是主节点,另两个是辅助节点。 我的MongoDB客户端是一个Java MongoDB客户端,Spring环境 我使用haproxy指向replset节点 有时,当我连接到haproxy时,mongo客户端会抛出以下异常: 消息:发现异常:过早到达流的末尾;嵌套异常为com.mongodb.mongoscocketreadexception:过早到达流的末尾 当我重试时,它将消失,几分钟后它将再次出

总之,我遇到了一个奇怪的问题

我有3个MongoDB服务器,并将它们组合成一个
replset
——一个是主节点,另两个是辅助节点。 我的MongoDB客户端是一个Java MongoDB客户端,Spring环境

我使用
haproxy
指向
replset
节点

有时,当我连接到haproxy时,mongo客户端会抛出以下异常:

消息:发现异常:过早到达流的末尾;嵌套异常为com.mongodb.mongoscocketreadexception:过早到达流的末尾

当我重试时,它将消失,几分钟后它将再次出现

我的
haproxy
config如下所示:

global
  daemon
  user vcap
  group vcap
  log /dev/log daemon info
  maxconn 4096

defaults
  log global
  option dontlognull
  mode  tcp
  timeout connect  5000ms
  timeout client  30000ms
  timeout server  30000ms
  retries   3
  option redispatch

# admin gui
listen stats
bind :8080
mode http
stats enable
stats uri /stats

default-server  on-error fastinter error-limit 3 inter 3000ms fastinter 1000ms downinter 300s fall 3

frontend fe_mongo_27027_tcp
  bind 0.0.0.0:27027
  mode tcp
  option tcplog
  use_backend be_mongo_27027_tcp

backend be_mongo_27027_tcp
  mode tcp
  option tcp-check
  # mongodb wire protocol
  tcp-check send-binary 3a000000 # Message Length (58)
  tcp-check send-binary EEEEEEEE # Request ID (random value)
  tcp-check send-binary 00000000 # Response To (nothing)
  tcp-check send-binary d4070000 # OpCode (Query)
  tcp-check send-binary 00000000 # Query Flags
  tcp-check send-binary 61646d696e2e # fullCollectionName (admin.$cmd)
  tcp-check send-binary 24636d6400 # continued
  tcp-check send-binary 00000000 # NumToSkip
  tcp-check send-binary FFFFFFFF # NumToReturn
  # Start of Document
  tcp-check send-binary 13000000 # Document Length (19)
  tcp-check send-binary 10 # Type (Int32)
  tcp-check send-binary 69736d617374657200 # ismaster:
  tcp-check send-binary 01000000 # Value : 1
  tcp-check send-binary 00 # Term

  tcp-check expect binary 69736d61737465720001 #ismaster True
  # mongodb check end

  option tcplog
  option tcpka

  server mongodb-10.62.90.175 10.62.90.175:27017 check inter 2000

  server mongodb-10.62.90.176 10.62.90.176:27017 check inter 2000

  server mongodb-10.62.90.174 10.62.90.174:27017 check inter 2000

这是由于超时设置,连接已关闭,因此mongo客户端无法接收二进制文件,现在我删除了超时设置,它现在可以工作。

这是由于超时设置,连接已关闭,因此mongo客户端无法接收二进制文件,现在我删除了超时设置,它现在可以工作了