当我连接到com.sun.net.httpserver.HttpServer的正在运行的实例时,有时(很少)我收到“连接被拒绝”消息。
有人知道为什么会这样吗?它可以处理的连接数是否存在线程限制?我能增加吗? 谢谢。 -r
答案 0 :(得分:2)
来自the doc:
绑定到地址和端口时 数量,申请也可以 指定整数backlog参数。 这代表最大数量 传入的TCP连接 系统将在内部排队。 连接排队等候 等待被接受 HttpServer的。达到限制时, 可能会拒绝进一步的联系 (或可能被忽略) 底层TCP实现。设置 正确的积压值是一个 有效资源之间的妥协 TCP层中的用法(不设置它) 太高了)并且允许足够的 传入请求的吞吐量(不是 设置得太低了。)
你可能会看到这个。
或者,您是否使用setExecutor()设置了执行程序。默认执行程序可能配置的线程数量少于您需要的数量,并且适当配置的ThreadPoolExecutor可能有效。