基于Web Service的套接字客户端

时间:2014-02-14 03:38:34

标签: java multithreading web-services sockets

我正在开发基于套接字的Web服务(套接字客户端)和外部服务器之间的通信。由于webservices是多线程的(服务器为每个服务请求创建了一个线程),每个线程是否应该使用外部服务器打开一个新的套接字(在给定端口上),或者应该在webservice线程之间同步和共享套接字客户端。 我在这里感到困惑。是开放客户端Socket(java.net.Socket的对象)是一个昂贵的对象,如JDBC Connection,它可以(应该)由每个线程打开,并在完成后由线程关闭。

请帮忙

由于

1 个答案:

答案 0 :(得分:0)

如果您正在讨论在客户端为服务器的每个请求创建新的Socket,那么这是正确的方法。

这正是具有标签的浏览器的运作方式。

拥有单个同步Socket意味着您需要拥有一个线程名称/ id的映射/表,请求URL /或任何其他唯一ID或任何其他ID来标识请求来自哪个线程以及哪个线程必须转发响应。这肯定会出现案例性能问题,而且不具备可扩展性。