Java如何实现Socket转发,问题同"Apache如何实现负载均衡"?
你说apache的是由JK插件实现的,而JK插件是基于AJP协议的,AJP协议就是对HTTP协议的一种优化,提供TOMCAT与其他web服务器的通信。JK插件把请求转发给哪个Tomcat服务器上的哪个连接器,也就是该连接器的通信协议和地址。谢谢,你的提示。可惜Apache端的JK实现我没有研究过,我只想知道的其实就是个小问题,比如TCP转发的语句该怎么写。 问题补充:huoyj 写道我理解的是负载均衡服务器在集群系统里充当的是代理的角色,比如所有的请求都是发向负载均衡服务器的,然后由它去请求其他的servlet容器去执行并获得结果,然后由它将结果展示给请求者,而不是它将请求转发给servlet容器。因为有的负载均衡系统中,可能静态页面放一个容器中,其他的一些动态的可能放在另一个容器中,比如说apache服务器的静态页面处理能力强,那静态页面都在他哪儿,tomcat的动态处理能力强,那servlet就在tomcat上,而且还可以有IIS服务器在里面,来处理asp的内容,所以负载均衡服务器应该不是一股脑的将请求转发走,而是由它假冒请求者再去别的地方请求。我明白你说的,我这里的情况是这样,我这边的客户端Socket直连服务器建立不中断的通道。我不能让所有的请求都建立在一个机器上,所以想让他们经过代理把请求分散开。

java 写的socket系统,因访问量大, 现在要做负载均衡 ,用哪种负载均衡中间件,如何实现
socket是基于tcp的,只能用IP级的负载均衡服务,用开源的LVS可以搞定。

什么是socket的长连接,以及如何实现长连接
建立连接后,两端都不进行关闭就是长连接了。 如何保证对端的存在,TCP的keepalive是TCP协议的保活机制,不过默认周期为2小时,较长。在应用层, 程序可以存在自己的连接保活机制,一般就是heartbeat了。

如何保证socket长连接
你好,socket长连接其实是长时间保持服务端与客户端的连接,这是相对于短连接而言。只要你两端不主动断开连接,那么该socket连接就是一直存在的,就可以收发数据。如果做得合理一点,就是在你不发数据的时候,自定义一个检测数据包(我们可以称之为心跳),例如由客户端定时主动给服务端发送,这样服务端收到后就表明,该连接时一直保持的。直到你主动关闭一端,该连接才断开。

socket.io node.js 可以负载均衡吗
我们在用 Node.js 处理知乎主站的 web 实时推送。你现在看到的 Feed 、消息的实时更新,背后就是几个 node 进程扛起来的。 优点:1. 处理高并发场景性能更高在用 socket.io 之前,推送服务是用 ajax polling 做的。我们用 Tornado 和 Node.js 做过两个版本的推送服务。在当时的测试环境下,Node.js 的 CPU 时间是 Tornado 的三分之一,内存使用是 Tornado 的一半,代码行数只有 Tornado 的三分之一(Node.js 版是用 coffee 写的)。后来我们使用了 socket.io,CPU 开销进一步降低。2. 函数式编程非常适合写异步回调链用 Node.js 配合 CoffeeScript 写异步操作链非常便利,相比之下 Tornado 无论是写命名函数的回调,还是 yield 一个 Task 都没那么自然。缺点:1. 大量匿名函数使异常栈变得不好看。 2. 无法以 request 为单位 catch 异常,必须确保不要在不 catch 异常的第三方库的回调里的抛异常,这在一个异步操作链条里是一件比较麻烦的事。解决方法之一是对那些不 catch 异常的第三方库做一些封装,把所有的异常变成事件,改成 on('error') 形式的 API。

本文由 在线网速测试 整理编辑,转载请注明出处。