简体   繁体   English

多台服务器上多个进程之间的IPC

[英]IPC between multiple processes on multiple servers

Let's say you have 2 servers each with 8 CPU cores each. 假设您有2台服务器,每台服务器都有8个CPU内核。

The servers each run 8 network services that each host an arbitrary number of long-lived TCP/IP client connections. 每个服务器运行8个网络服务,每个网络服务承载任意数量的长期TCP / IP客户端连接。

Clients send messages to the services. 客户端将消息发送到服务。

The services do something based on the messages, and potentially notify N>1 of the clients of state changes. 服务根据消息执行某些操作 ,并有可能将状态更改通知N> 1个客户端。

Sure, it sounds like a botnet but it isn't. 当然,这听起来像是一个僵尸网络,但事实并非如此。 Consider how IRC works with c2s and s2s connections and s2s message relaying. 考虑一下IRC如何与c2s和s2s连接以及s2s消息中继一起工作。

  • The servers are in the same data center. 服务器位于同一数据中心。
  • The servers can communicate over a private VLAN @1GigE. 服务器可以通过专用VLAN @ 1GigE进行通信。
  • Messages are < 1KB in size. 邮件的大小小于1KB。

How would you coordinate which services on which host should receive and relay messages to connected clients for state change messages? 您将如何协调哪个主机上的哪些服务应接收消息并将消息中继到连接的客户端以获取状态更改消息?

There's an infinite number of ways to solve this problem efficiently. 有无数种有效解决此问题的方法。

  • AMQP (RabbitMQ, ZeroMQ, etc.) AMQP(RabbitMQ,ZeroMQ等)
  • Spread Toolkit 传播工具包
  • N^2 connections between allservices (bad) 所有服务之间的N ^ 2连接(错误)
  • Heck, even run IRC! 哎呀,甚至运行IRC!
  • ... ...

I'm looking for a solution that: 我正在寻找以下解决方案:

  • perhaps exploits the fact that there's only a small closed cluster 也许利用了这样一个事实:只有一个很小的封闭集群
  • is easy to admin 易于管理
  • scales well 缩放良好
  • is "dumb" (no weird edge cases) 是“哑”(没有奇怪的情况)

What are your experiences? 你有什么经验?

What do you recommend? 您有什么推荐的吗?

Thanks! 谢谢!

客户端上的原始以太网广播和过滤怎么样?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 节点IPC兄弟进程处理通信 - Node IPC Sibling Processes Communication 多台服务器中的事件和共享类 - Events and shared classes in multiple servers 多台服务器上的数据处理-Azure - Data processing on multiple servers - Azure Docker 设计:在容器之间交换数据还是将多个进程放在一个容器中? - Docker design: exchange data between containers or put multiple processes in one container? 多个Mirth Connect客户端的服务器架构 - Servers' architecture for multiple Mirth Connect clients 跨多个服务器/应用程序共享全局变量 - Sharing global variables across multiple servers/applications nginx:它的多线程但使用多个进程? - nginx : Its Multithreaded but uses multiple processes? 通过文件系统窗口跨多台计算机同步多个进程 - Synchronize multiple processes across multiple machines through file system windows 如何处理来自不同服务器的多个数据库结果以获取请求 - How to deal with multiple database results from different servers for a request 需要相互通信的多个游戏服务器的最佳架构是什么? - What is the best architecture for multiple game servers that need to talk to each other?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM