【问题标题】:Does a restful service client's concurrent requests cause problems to the restful service?RESTful 服务客户端的并发请求是否会导致 RESTful 服务出现问题?
【发布时间】:2018-10-02 19:47:28
【问题描述】:

我正在通过客户端的 http 访问在 Java 中测试 Restful Web 服务。我有一个大文本文件,对于文件的每一行,我需要向 Web 服务发送一个 http 请求以处理文本并将结果返回给客户端。为了加快处理速度,我尝试使用多线程应用程序将 HTTP 请求并发发送到 Web 服务。

似乎当我在客户端代码中设置线程数=1时,服务运行良好但速度很慢。当我设置线程数>1时,Web服务的日志显示一些错误消息,即“超时”(在某些地方我有超时监控代码)或“执行异常”或中断异常”。在Web服务的代码中,有Future对象用过。

我的问题是:

1) Does the client's concurrency affect the web service's thread safety? I thought it won't and shouldn't. 
2) What are the possible reasons for generating those error messages?

【问题讨论】:

    标签: java rest futuretask


    【解决方案1】:

    1) 多线程客户端不会影响服务器的线程安全。但它们可能会揭示服务器上的线程问题(如果服务器不是线程安全的)。

    2) 标准线程问题可能导致此问题。尤其是竞争条件和死锁。没有代码很难判断出了什么问题。

    【讨论】:

    • “但它们可能会揭示服务器上的线程问题”?如果客户端不影响线程安全?
    • 有点吹毛求疵,但服务器是线程安全的,或者不是线程安全的。这不取决于有多少客户端同时访问它。
    • 但是当同时向服务器发出大量请求时,似乎服务器出现了问题;否则(请求很少的单线程),它运行良好。
    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 2013-08-22
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2012-08-07
    • 1970-01-01
    相关资源
    最近更新 更多