Tcp Ubuntu上最高效的进程间通信 我在我的服务器上运行了C++模拟。同时,还有基于C#的代码,主要用于统计数据收集。由C++代码生成的日志由C代码编写并被消耗。这两个程序在同一台机器上运行。 我将生成日志的模拟称为“生产者”,将日志格式化为“消费者”的其他过程称为“消费者”

Tcp Ubuntu上最高效的进程间通信 我在我的服务器上运行了C++模拟。同时,还有基于C#的代码,主要用于统计数据收集。由C++代码生成的日志由C代码编写并被消耗。这两个程序在同一台机器上运行。 我将生成日志的模拟称为“生产者”,将日志格式化为“消费者”的其他过程称为“消费者”,tcp,pipe,ipc,Tcp,Pipe,Ipc,系统中运行的生产者有多个副本。事实上,多达20个生产商可以同时在系统中运行。只有消费者的一份副本。生产者日志具有唯一的标识,标识日志来自哪个模拟 假设我有大量可用内存,那么生产者和消费者沟通的最佳方法是什么 此时,每个生产商可以生成高达100MBps的日志。因此,将产生的最高日志量将是2GBps。我怀疑消费者可能无法吸收那么多的吞吐量,可能落后于生产商。我想确保,如果消费者的速度不够快,生产商不会背负压力。我想我有足够的内存来吸收未处理的日志 我不确定我的(最佳)选择是什么。对于我手头的问题,我

系统中运行的生产者有多个副本。事实上,多达20个生产商可以同时在系统中运行。只有消费者的一份副本。生产者日志具有唯一的标识,标识日志来自哪个模拟

假设我有大量可用内存,那么生产者和消费者沟通的最佳方法是什么

此时,每个生产商可以生成高达100MBps的日志。因此,将产生的最高日志量将是2GBps。我怀疑消费者可能无法吸收那么多的吞吐量,可能落后于生产商。我想确保,如果消费者的速度不够快,生产商不会背负压力。我想我有足够的内存来吸收未处理的日志

我不确定我的(最佳)选择是什么。对于我手头的问题,我想找到一种灵活的通信方法,它1)足够快,2)可以处理多个生产者、单个消费者环境,3)可以利用大量内存,而无需对生产者施加反压力,4)提供简单的API,这样我就不必处理详细的通信问题,例如对共享资源进行静音等。

  • 您的用例真的需要高性能的生产者-消费者配置吗?在快速完成之前,我会先把重点放在正确完成上
  • 就正确而言:您计划如何实施这一点?您计划使用什么语言/技术?这与其说是关于Ubuntu,不如说是关于它是如何实现的
  • 有许多生产者和消费者的例子。这是进程间通信的经典案例
因此,请确定您将如何实现它,找到一些共享内存解决方案与消息传递的示例,然后再试一次!把它做好,然后你就可以做出更明智的决定,哪一个更适合你的特定用例


我想其他人不会很快回答你的问题,因为没有一种进程间通信方法优于其他方法。特别是当这个问题被孤立地提出时——没有更大的上下文来说明更大的应用程序的用途。这些日志是干什么用的

谢谢你的洞察力。我添加了你在我问的原始问题中提到的重要信息。