我有1个进程接收来自端口1000的传入连接,其中服务器是1 linux服务器。但是,1个进程不足以处理所有传入的请求。1服务器中进程的负载平衡
我想在服务器上运行多个进程,但有1个端点。这样,客户端只会看到1个端点/进程不是多个。
我检查过LVS和其他负载均衡解决方案。这些解决方案似乎适用于多个服务器负载平衡。
任何其他解决方案,以帮助我的情况?
我看起来更像nginx,我需要运行我的应用程序的多个副本。
让我试试看。
感谢您的帮助。
我有1个进程接收来自端口1000的传入连接,其中服务器是1 linux服务器。但是,1个进程不足以处理所有传入的请求。1服务器中进程的负载平衡
我想在服务器上运行多个进程,但有1个端点。这样,客户端只会看到1个端点/进程不是多个。
我检查过LVS和其他负载均衡解决方案。这些解决方案似乎适用于多个服务器负载平衡。
任何其他解决方案,以帮助我的情况?
我看起来更像nginx,我需要运行我的应用程序的多个副本。
让我试试看。
感谢您的帮助。
您也可能想要使用像nginx这样的网络服务器。它可以将应用程序与同一应用程序的多个端口进行负载平衡,并且通常用于平衡Ruby on Rails应用程序(它们是单线程的)。缺点是您需要运行应用程序的多个副本(每个端口上有一个副本)才能使此负载平衡正常工作。
这个问题对我来说有点不清楚,但我怀疑你正在寻找的答案是让一个进程接受来自网络的任务,然后分离出“工作进程”来实际执行工作(在返回之前结果给用户)。
这样,正在完成的工作并不会阻止接受更多的请求。
正如您指出的那样,术语负载平衡带有多个服务器的含义 - 您想要查找的是有关如何编写Linux网络守护程序的信息。
您想要查看的两个kes系统调用称为fork and exec。
这听起来像你只需要将您的服务器与xinetd集成。
这是一个侦听预定义端口(通过配置控制的端口)并分离进程以处理该端口上的实际通信的服务器。
您需要多处理或多线程。您对服务器的详细信息没有具体说明,因此我无法给您提供有关如何执行的建议。正如Matt建议的fork和exec可以是一个解决方案,但是真的:我们在谈论什么类型的协议/服务器?
我想运行多个应用程序类似于ypops。
nginx的是伟大的,但如果你不喜欢一个全新的Web服务器,与国防部代理平衡器Apache 2.2的会做同样的工作
也许你可以修改你的客户为round-robin端口(说)1000 -1009并运行10个进程的副本?
或者,必须有一些内部重构它的方式。
几个进程可能在调用fork()之前立即侦听同一个套接字,但是(如果它是TCP套接字)一旦调用accept(),结果套接字就成功地属于哪个进程接受了这个连接。
所以基本上你可以使用: