我想了解您的想法,我如何通过能够在多个服务器上运行我的服务进程来实现水平扩展。它是一个用C#编写的Windows服务,它的实际用途是订阅我们公司的Exchange Web service (EWS),这样每当有新的电子邮件传入时,它就会得到通知(通过HTTP回调)。然后,该服务获取电子邮件消息,对其进行处理,如果可能,发送回复,然后返回睡眠状态并等待下一封传入的电子邮件。
如果我在多台机器上运行它,我可以让所有机器都订阅EWS通知,也可以只让其中一台机器订阅。如果我让所有人都订阅,我会有点犹豫,因为这可能会给我们的MS Exchange基础结构增加负担。此外,这将导致所有机器接收和处理电子邮件
但是搭建了本地DNS,客户端(windows)创建后立马报NOT IMPLEMENTED,buffer_read_ipv4_address_at,是Windows不支持,但是我看教程搭建都是客户端是windows,不搭建本地DNS,直接设置权威服务器DNS,返回只有answer<1,会直接报DNS DNS didn't return an answer
由于大量打开web套接字连接请求,我在我的nginx上遇到了一个(23: too many open files in system)错误。
后端服务,它运行在完全不同的机器上,并从这个nginx进程接收proxy_pass。一旦达到某个阈值,就会收到上面的错误消息。我试着挖掘nginx文档,但没有找到有用的东西。这些web套接字的文件描述符在哪里被打开和创建?是在运行nginx进程的机器上运行,还是在运行服务的机器上运行?
我想提高每个进程允许打开文件的限制,并且我不确定我需要在哪台机器上更改它。